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

在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手机上完美运行...

Android菜鸟的成长笔记(28)——Google官方对Andoird 2.x提供的ActionBar支持,布布扣,bubuko.com

时间: 2024-08-01 10:29:14

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

Android菜鸟的成长笔记(27)——ViewPager的使用

ViewPager是Android 3.0以上可以使用的API. 一.ViewPager能干什么? 1.微信5.0中连带滑动用ViewPager可以轻松实现. 2.实现类似于新浪微博的导航引导界面. 3.实现其他导航或菜单. 二.ViewPager的使用 1.添加布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_pa

Android菜鸟的成长笔记(27)——SurfaceView的使用

前面有关自定义View中进行了绘图,但View的绘图机制存在如下缺陷: 1.View缺乏双缓冲机制. 2.当程序需要更新View上的图像时,程序必须重绘View上显示的整张图片. 3.新线程无法直接更新View组件. 由于View存在上面缺陷,所以在游戏开发中一般使用SurfaceView来进行绘制,SurfaceView一般会与SurfaceHolder结合使用,SurfaceHolder用于向与之关联的SurfaceView上绘图,调用SurfaceView的getHolder()方法即可获

MVP学习笔记——参考Google官方demo

demo地址:https://github.com/googlesamples/android-architecture 在这个项目里,每个包的分工都很明确,大体上来说,一个包会对应一个界面.一个界面就会对应一个MVP. M:还是模型层和业务层 V:视图层.Activity或者Fragment,在这份代码里面,Google是把Fragment当作一个V,而不是Activity P:Prensenter,用来控制V. 按我的理解是,MVP主要就是通过P来解耦M和V,P用来沟通M和V,使得两者不必直

Android第三十六期 - Google官方5.0下拉刷新

代码已经整理好,效果如下: 图一, 图二, 地址:http://down.51cto.com/data/2041626

Android菜鸟笔记- 获取未安装的APK图标、版本、包名、名称、是否安装、安装、打开

周末闲来无事,把Android的基础知识拿出来复习复习,今天主题是<获取未安装的APK图标.版本.包名.名称.是否安装.跳转安装.打开> 一.获取APK图标 通常读取APK的图标可以用,PackageManager里面的getApplicationIcon(ApplicationInfo)来得到一个drawable.但实际使用的时候经常只能得到一个默认的图标,根本不是APK的图标. 参考小米开源文件管理器,结合实践,代码如下: /* * 采用了新的办法获取APK图标,之前的失败是因为andro

Android菜鸟笔记-WifiPickerActivity 实现跳转到系统自带wifi连接界面

前言: 在使用一些APP时,比如Google Play,在没有连接到网络时,APP会自动跳转到系统自带的wifi连接界面(如下图),在这个界面下连接wifi有一个很好的功能:在没有连上wifi热点时,"下一步"按钮是无法点击,这种体验效果是非常好的,确保了在下一步时,有网络可以使用. 实现步骤: 1. 怎么才能跳转到这个界面?(通过adb logcat查看Google Play跳转时的ACTION,log如下) I/ActivityManager(  444): START u0 {a

下载Google官方/CM Android源代码自动重新开始的Shell脚本

国内由于某种原因,下载CM或Google官方的Android源代码总容易中断.总看着机器,一中断就重新执行repo sync还太麻烦,所以我特意编写了一段shell脚本(download.sh).通过获取shell最后返回的状态码来决定是否再次执行repo sync命令. #!/bin/bash echo "======start repo sync======" repo sync # 第一次下载android源代码 while [ $? != 0 ]; do echo "

ubuntu 14.04 64位使用google官方android开发集成工具adt-64位无法使用adb

在使用ubuntu64位(14.04)时,下载来一个adt-bundle-linux-x86_64-20131030.zip,但是运行时报错: Android: Gradle: Execution failed for task Cannot run program android-studio/sdk/build-tools/android-4.2.2/aapt error=2, 没有那个文件或目录 使用aapt编译资源时报错, 提示找不到aapt这个命令, 可是在sdk中命名存在这个可执行文

Android屏幕适配全攻略(最权威的Google官方适配指导)

Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习本文,对于Android的屏幕适配,你将有所收获! 出处:http://blog.csdn.net/zhaokaiqiang1992 Android屏幕适配出现的原因 重要概念 屏幕尺寸 屏幕分辨率 屏幕像素密度 dpdipdpisppx mdpihdpixdpixxdpi 解决方案 支持各种屏幕尺