在Google官方Android设计指南中(链接:http://www.apkbus.com/design/get-started/ui-overview.html)有一个新特性就是自我标识,也就是宣传自己,所以非常多应用如今也自然的使用ActionBar并提供自己的logo.

微信的应用:

Google的Android设计指南中是这样说的:应用的 启动图标 作为启动应用的入口是展示 logo 的最佳场所。你也能够将启动图标放置在 操作栏 上,从而保证在应用内的全部页面上都能看到它。

在使用ActionBar的时候。会发现一个问题。

在3.0曾经SDK中是不支持ActionBar的,所以假设手机apk要兼容2.2或2.3的手机就须要用一个开源的项目ActionBarSherlock,详细用法例如以下:

1、下载开源包:http://actionbarsherlock.com/usage.html

2、导入到Eclipse中(和导入项目步骤同样,记得勾选Is Library)

3、在项目中引用(properties->android->add  加进去)

4、改动主题为@Style/Theme.Sherlock.Light(或其子类)

5、继承SherlockActivity。

6、使用getSupportActionBar()获取ActionBar对象。

上面方法就能够实现低版本号使用ActionBar的问题。可是Goole去年推出了自己的兼容包,使用起来更加方便。以下我们就来看看怎样使用support_v7。

1、和上面一样下载和导入appcompat_7.x兼容包(假设是官方最新的sdk开发工具则提供)

2、在项目中引用:

3、改动主题为@style/Theme.AppCompat(或其子类)

4、改动menu/文件夹下相应的xml文件

<?

xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:alpha="http://schemas.android.com/apk/res-auto"> <!-- Search, should appear as action button --> <item android:id="@+id/action_search" android:icon="@drawable/ic_action_refresh" android:title="刷新" alpha:showAsAction="always"/> <!-- Settings, should always be in the overflow --> <item android:id="@+id/action_add" android:title="分享" android:icon="@drawable/ic_action_share" alpha:showAsAction="always" /> <item android:id="@+id/action_settings" android:title="很多其它" android:icon="@drawable/ic_action_overflow" alpha:showAsAction="always"> <menu > <group > <item android:id="@+id/item1" android:title="个人中心" android:icon="@drawable/ic_action_share"/> <item android:id="@+id/item2" android:title="设置" android:icon="@drawable/ic_action_share"/> <item android:id="@+id/exit_system" android:title="退出" android:icon="@drawable/ic_action_share"/> </group> </menu> </item> </menu>

5、继承自ActionBarActivity

6、使用getSupportActionBar获取ActionBar对象。

        ActionBar actionBar = getSupportActionBar();actionBar.setDisplayShowHomeEnabled(true);actionBar.setIcon(R.drawable.actionbar_icon);

在Android 2.2和2.3手机上完美执行...

转载于:https://www.cnblogs.com/bhlsheji/p/5322613.html

Android菜鸟的成长笔记(28)——Google官方对Andoird 2.x提供的ActionBar支持相关推荐

  1. Android菜鸟的成长笔记(11)——Android中的事件处理

    原文: [置顶] Android菜鸟的成长笔记(11)--Android中的事件处理 Android提供了两种方式来处理事件,一个是基于回调的事件处理,另一个是基于监听的事件处理,举个例子: 基于回调 ...

  2. Android菜鸟的成长笔记(13)——异步任务(Async Task)

    Android菜鸟的成长笔记(13)--异步任务(Async Task) 原文: [置顶] Android菜鸟的成长笔记(13)--异步任务(Async Task) Android的UI线程主要负责处 ...

  3. Android菜鸟的成长笔记(3)——给QQ登录界面说So Easy

    上一篇:Android菜鸟的成长笔记(2)--第一个Android应用 我们前面已经做了第一个Android应用程序,虽然有点像QQ的登录界面,但是很多地方还是很难看,这一篇咱们来将这个界面做成一个标 ...

  4. Android菜鸟的成长笔记(5)——Android系统源代码你下载了吗?

    在上一篇中我们用Android系统源代码分析了我们前面写的代码,有的朋友可能就会问怎么才能下载到Google官方的源代码呢?下面我们通过Git管理工具来对Android系统源代码进行下载.另外为了方便 ...

  5. Android菜鸟的成长笔记(25)——可爱的小闹钟

    摘要: 这一篇主要使用系统为我们提供的一个服务AlarmManager来制作一个Android小闹钟,同时还涉及到了自定义主题.判断第一次启动应用.自定义动画.对话框.制作指导滑动页面等方面.最后形成 ...

  6. Android菜鸟的成长笔记(16)——Service简介

    Service是Android四大组件之一 1.Service与Activity的区别在:Service一直在后台运行,没有用户界面. 2.选择Activity与Service的标准:如果某个程序组件 ...

  7. 一个Android菜鸟入门Flutter 笔记(二)

    1. 网络编程与JSON解析 默认的HttpClient请求网络 get() async {//创建网络调用示例,设置通用请求行为(超时时间)var httpClient = HttpClient() ...

  8. 一个Android菜鸟入门Flutter 笔记(一)

    1. Dart 基础语法 1.1 hello world 先来看个hello world,入口依然是main方法. printInteger(int a) {print('Hello world, t ...

  9. Android登陆demo:界面设计及业务代码———Android菜鸟的成长日记

    距离上一次更新,两天前. 今天就从头开始来学习,当然是直接上案例了,就不扭扭捏捏的上基础知识了,基础知识是自己去学的,我直接从小的demo入手,开始新一轮的学习之路. 首先是关于界面设计(布局): 关 ...

最新文章

  1. C++:随笔8---命名空间
  2. LeetCode实战:两数之和
  3. 差分霍尔器件测量电路
  4. python小爬虫之天气查询
  5. 中业科技机器人价格_协作机器人售价持续走低 本土厂商该如何发力
  6. Microsoft Office Visio
  7. 运用代码管理段来提升开发效率
  8. vue2.0 element-ui中的el-select选择器无法显示选中的内容
  9. vs.net2003无法打开.NET的Web应用服务
  10. javascript和var之间的区别?
  11. python celery应用场景_python celery 模块
  12. php 做更新进度条,PHP exec()后更新Bootstrap进度条
  13. 2018上半年软件设计师上午题参考答案
  14. Windows 2003 上使用 Windows Live Writer
  15. 多线程是并行还是并发_并发,并行,线程,进程,异步和同步有相关性吗?
  16. 3个查看远端端口是否畅通的方法
  17. [译]Quartz.NET 框架 教程(中文版)2.2.x 之第五课 SimpleTrigger
  18. android动画水波纹外扩,Android实现水波纹扩散效果
  19. 如何批量识别二维码图片信息?
  20. 电瓶升级问题:在本节最后一个electric_car.py版本中,给Battery类添加一个名为upgrade_battery()的方法。这个方法检查电瓶容量,如果它不是85,就将它设置为85。

热门文章

  1. 请大家说一说:有没有必要针对VSS备份过程,做成一个开源小工具?
  2. 电子产品的磨砂膜和镜面膜的选择
  3. Flink的滚动策略
  4. Java spark中的各种范型接口Function的区别(持续更新中)
  5. html向后端发送请求
  6. kaggle颅内出血比赛分析
  7. 医学图像-颅内出血(转载+整理)
  8. Running /usr/bin/wineserver -w. This will hang until all wine processes XXXX terminate
  9. FPgrwoth详解(转载+修改一处图片问题)
  10. 重置CentOS阿里云的mysql密码