风格化动作栏
动作栏给你的用户提供了一个熟悉而又直观的方式来执行动作和导航你的app。但是这不是说动作栏必须和其他的APP都是一模一样的。如果你想更改动作栏的样貌的话,你可以通过使用安卓的“风格和主题”轻松实现。
安卓包含了一些内置的activity主题能够实现“深色”和“浅色”的动作栏风格。你也可以通过扩展这些主题来定制你自己的动作栏。
使用安卓主题
安卓包含了两个基本的activity主题,主要是颜色上的区别:
Theme.Holo 深色主题
Theme.Holo.Light 浅色主题
然后对整个应用或者某个activity应用主题:
下载示例代码
针对安卓2.1及以上
(本人不再翻译此相关的东西,因为有些过时,大部分人应该用不到,如果你确实需要的话,还是请参考官方文档吧^_^。)
定制文本颜色
为了更改动作栏的文本颜色,你同样需要覆写相关的文本元素属性值:
动作栏标题:定义一个自定义主题,指定actinBarStyle到中的titleTextStyle的属性textColor值。注意:titleTextStyle需要继承主题TextApperance.Holo.Widget.ActionBar.Title。
动作栏标签页:需要覆写actionBarTabTextStyle。
动作按钮:需要覆写actionMenuTextColor。
针对安卓3.0及以上
假设你在安卓3.0版本及以上的系统上开发,那么需要创建如下一个主题文件:
res/values-v14/themes.xml
上面的文件用到了颜色,我们需要再自定义一个颜色(#ff0000代表红色,顺序为#RRGGBB):
res/values-v14/colors.xml
#ff0000
然后对整个应用或者某个activity应用主题:
在上面我们对整个应用使用了自定义主题,分别设定动作栏标题文本,标签页文本,动作按钮文本为红色。因此,我们还需要更改代码和资源文件来添加标签页和动作按钮:
MainActivity.java
@Overrideprotected void onCreate(Bundle savedInstanceState) {……ActionBar ab = getActionBar();ab.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD | ActionBar.NAVIGATION_MODE_TABS);;ab.addTab(ab.newTab().setText("Tab 1").setTabListener(tablistener));ab.addTab(ab.newTab().setText("Tab 2").setTabListener(tablistener));ab.addTab(ab.newTab().setText("Tab 3").setTabListener(tablistener));}private ActionBar.TabListener tablistener = new ActionBar.TabListener() {@Overridepublic void onTabUnselected(Tab tab, FragmentTransaction ft) {// TODO Auto-generated method stub}@Overridepublic void onTabSelected(Tab tab, FragmentTransaction ft) {// TODO Auto-generated method stub}@Overridepublic void onTabReselected(Tab tab, FragmentTransaction ft) {// TODO Auto-generated method stub}};
建立一个菜单文件,添加动态按钮:
res/menu/main.xml
执行程序,效果图如下:
下载示例代码
定制标签页的指示条
为了更改标签页的指示条(默认是蓝色,我们将把它改成白色的),你需要覆写actionBarStyle属性。这个属性指向另一个主题,在那里你需要修改background指向一个状态型的图像资源。(所谓状态型图像资源,就是根据某个标签页选中或不选中等状态变化显示不同的背景图片。)
例如,下面我们建立了一个状态型的图像资源:
res/drawable/actionbar_tab_indicator.xml
上面还需要一些图片资源,请下载后面的示例代码。
接下来,需要自定义主题:
res/values-v14/themes.xml
然后对整个应用或者某个activity应用主题:
修改MainActivity.java,添加几个标签页,否则看不到效果。具体如何添加,请参考上面的代码示例。
效果图如下:
下载代码示例
如果你想更改动作栏更多的东西,请参考网站 Android Action Bar Style Generator,这个网站可以帮你自动生成所需的资源,非常方便,你下载下来看看就了解怎么回事了。推荐使用360浏览器下载,别的浏览器好像下载不下来。