您的位置:首页 > 移动开发

Android学习系列(23)--App主界面实现

2012-02-15 09:59 351 查看
在上篇文章《Android学习系列(22)--App主界面比较》中我们浅略的分析了几个主界面布局,选了一个最大众化的经典布局。

今天我们就这个经典布局,用代码具体的实现它。

1.预览图

先看下最终的界面设计图:







上面顶部是一个9patch背景图片+标题文字;

下面底部是5个tab标签,表示应用的5大模块。

中间内容部分则是各个模块的具体内容,可以再分类,或者直接显示内容。

2.准备素材

按照上篇文章的界面,我们需要事先提供两大方面的素材:顶部+底部。

顶部的素材非常简单,最重要的是背景(9patch的图片):



底部的素材稍微多一点:

(1).每个tab的背景都需要正常和选中两种,一共10张图片;

(2).每个tab之间有一张分割线,1张图片;

(3).为了自适应屏幕宽度,并保持图形不变形,必须tab背景和下面botton这个背景色一致,所以需要1张同背景的背景图片。

如下:

(1).





















(2).



(3).



在这里呢,我再三考量,决定还是把图片和文字放在一起,这样一能大大降低代码的复杂性,而且能保证漂亮的样式,我们通过Photoshop来控制,灵活性大大增强。

以上是我在网上随便找了几张照片,稍微处理了一下,作为下面我们实现的素材。

3.实现原理

这里,我采用了getDecorView方法,发现这种方法布局和代码比较简洁,看上去性能也不错(待查)。

用核心代码来说明一下原理:

  通过切换不同的activity的decorView,实现tab的视图切换。

4.基本框架

布局界面思路非常清晰,顶部+底部+中间tab内容

我采用相对布局(相对于线性布局,我经常选择帧布局和相对布局,我更喜欢这两个小巧的布局):

看起来很复杂的东西,分解一下就简单的多了。

在标题处,加上一个TextView,做为标题显示。

在内容处,我们需要填充5个Tab背景和1个分割线,请参考《Android学习系列(5)--App布局初探之简单模型》 中的模型四,使用了layout_weight的属性,平均分割了5个tab.

最终我们的布局文件如下:

其中的main_tab_container是容器布局,到时候动态存放切换的activity的视图。

这时候,效果图如下:



中间的内容为空,tab点击也没有任何效果,我们继续实现。

这就是布局文件main_tab_frame.xml.

5.事件效果

现在我们把点击效果,切换标题,这些效果关联起来。

选择不同的tab,显示不同的标题,同时切换不同的activity.

以点击评花的主要代码为例子:

我们继承ActivityGroup这个类,实现这个完整的类MainTabFrame.java:

  具体的每个activity怎么显示的,再通过 AppreciateTabActivity,DiscussTabActivity,IdentificationTabActivity,FavoriteTabActivity,SettingTabActivity 这些独自实现,不再累述。

6.扩展建议

这里补充两点:

(1).标题栏在上述示例中,我是放在MainTabFrame,这样做的好处是,统一了,方便了;这样做的缺点是,如果每个activity的标题栏是不同的按钮,不同的操作,会有些膨胀。所以,标题栏放在主Acvtivity和子Activity中,考虑一下即可。

(2).tab的切换效果,我做的非常简单,具体的图片阴影,凹凸,文字色彩区分都没有去做(本人对Photoshop实在不熟),美化方面还可以大大改进。

7.小结

通过实现这么个简单的主界面框架,能使我们快速的开始我们相应的感兴趣项目,提供了一种大众化得参考,是android学习者必备基础。

这种东西的积累和分析也是能提高我们感觉应用的审美感。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: