热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

Training风格化动作栏

风格化动作栏动作栏给你的用户提供了一个熟悉而又直观的方式来执行动作和导航你的app。但是这不是说动作栏必须和其他的APP都是一模一样的。如果你想更改动作栏的样貌的话,

风格化动作栏

 

动作栏给你的用户提供了一个熟悉而又直观的方式来执行动作和导航你的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浏览器下载,别的浏览器好像下载不下来。

 



推荐阅读
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 云计算的优势与应用场景
    本文详细探讨了云计算为企业和个人带来的多种优势,包括成本节约、安全性提升、灵活性增强等。同时介绍了云计算的五大核心特点,并结合实际案例进行分析。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 本文介绍了如何利用 Spring Boot 和 Groovy 构建一个灵活且可扩展的动态计算引擎,以满足钱包应用中类似余额宝功能的推广需求。我们将探讨不同的设计方案,并最终选择最适合的技术栈来实现这一目标。 ... [详细]
  • Windows 7 64位系统下Redis的安装与PHP Redis扩展配置
    本文详细介绍了在Windows 7 64位操作系统中安装Redis以及配置PHP Redis扩展的方法,包括下载、安装和基本使用步骤。适合对Redis和PHP集成感兴趣的开发人员参考。 ... [详细]
  • Hadoop发行版本选择指南:技术解析与应用实践
    本文详细介绍了Hadoop的不同发行版本及其特点,帮助读者根据实际需求选择最合适的Hadoop版本。内容涵盖Apache Hadoop、Cloudera CDH等主流版本的特性及应用场景。 ... [详细]
  • 编写了几个500行左右代码的程序,但基本上解决问题还是面向过程的思维,如何从问题中抽象出类,形成类的划分和设计,从而用面向对象的思维解决问题?有这方面的入门好书吗?最好是结合几个具体的案例分析的 ... [详细]
  • 深入理解 .NET 中的中间件
    中间件是插入到应用程序请求处理管道中的组件,用于处理传入的HTTP请求和响应。它在ASP.NET Core中扮演着至关重要的角色,能够灵活地扩展和自定义应用程序的行为。 ... [详细]
  • 本文介绍了一种有效的方法来扩展Matlab的虚拟内存,以解决在处理大数据或生成大图像时遇到的“out of memory”错误问题。通过具体步骤和实际测试,确保用户能够在自己的电脑上顺利运行大型计算任务。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 本文介绍了在Java环境中使用PDFBox和XPDF工具从PDF文件中提取文本内容的方法。重点讨论了处理中文字符集及解决相关错误的技术细节,特别是针对某些特定格式的PDF文件(如网上填写的报名表和下载的论文)遇到的问题及解决方案。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • 主板IO用W83627THG,用VC如何取得CPU温度,系统温度,CPU风扇转速,VBat的电压. ... [详细]
  • Java项目分层架构设计与实践
    本文探讨了Java项目中应用分层的最佳实践,不仅介绍了常见的三层架构(Controller、Service、DAO),还深入分析了各层的职责划分及优化建议。通过合理的分层设计,可以提高代码的可维护性、扩展性和团队协作效率。 ... [详细]
  • Nature Microbiology: 人类肠道古菌基因组目录
    本研究揭示了人类肠道微生物群落中古细菌的多样性,分析了来自24个国家、农村和城市人群的1,167个非冗余古细菌基因组。研究鉴定了多个新分类群,并探讨了古菌对宿主的适应性及其与社会人口特征的关系。 ... [详细]
author-avatar
为爱进地狱天堂_954
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有