正在准备一个项目,需要尊重android design的同时还要做到很好的兼容低版本,于是就先从actionBar开始吧。

1,新建一个android工程startActionBar,minSdkVersion="7",targetSdkVersion="18",用19(暂时最新)的版本编译。

  1. <uses-sdk
  2. android:minSdkVersion="7"
  3. android:targetSdkVersion="18" />

2,将sdk下面的v7工程作为一个project导入到eclipse中,名为“android-support-v7-appcompat”的工程。

v7工程的路径在sdk的目录中位置:“android\sdk\extras\android\support\v7\appcompat”

3,设置startActionBar工程包含上面的工程源。

startActionBar工程上右键 -> Properties -> Android -> add -> “选择android-support-v7-appcompat” -> 保存ok。

你会看到gen目录下已经有了v7工程的源码。

4,继承ActionBarActivity写一个activity

  1. import android.os.Bundle;
  2. import android.support.v7.app.ActionBarActivity;
  3. import android.view.Menu;
  4. public class MainActivity extends ActionBarActivity {
  5. @Override
  6. protected void onCreate(Bundle savedInstanceState) {
  7. super.onCreate(savedInstanceState);
  8. setContentView(R.layout.activity_main);
  9. }
  10. @Override
  11. public boolean onCreateOptionsMenu(Menu menu) {
  12. //加载action items
  13. getMenuInflater().inflate(R.menu.main, menu);
  14. return true;
  15. }
  16. }

5,manifest代码

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.example.tab"
  4. android:versionCode="1"
  5. android:versionName="1.0" >
  6. <uses-sdk
  7. android:minSdkVersion="7"
  8. android:targetSdkVersion="18" />
  9. <application
  10. android:allowBackup="true"
  11. android:icon="@drawable/ic_launcher"
  12. android:label="@string/app_name"
  13. android:theme="@style/AppTheme" >
  14. <activity
  15. android:name="com.example.tab.MainActivity"
  16. android:label="@string/app_name"
  17. android:theme="@style/Theme.AppCompat.Light">
  18. <intent-filter>
  19. <action android:name="android.intent.action.MAIN" />
  20. <category android:name="android.intent.category.LAUNCHER" />
  21. </intent-filter>
  22. </activity>
  23. </application>
  24. </manifest>

6,res/menu/main.xml 内容

  1. <menu xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:Tab="http://schemas.android.com/apk/res-auto">
  3. <item
  4. android:id="@+id/action_photo"
  5. android:orderInCategory="99"
  6. Tab:showAsAction="ifRoom|withText"
  7. android:title="@string/photo"
  8. android:icon="@drawable/collections_view_as_grid"/>
  9. <item
  10. android:id="@+id/action_text"
  11. android:orderInCategory="98"
  12. Tab:showAsAction="ifRoom|withText"
  13. android:title="@string/text"
  14. android:icon="@drawable/content_copy"/>
  15. <item
  16. android:id="@+id/action_settings"
  17. android:orderInCategory="100"
  18. android:showAsAction="never"
  19. android:title="@string/action_settings"/>
  20. </menu>

这里有三点需要特别注意:(1)、“

  1. android:icon="@drawable/collections_view_as_grid"

actionBar兼容2.1及以上版本的做法 .的更多相关文章

  1. IKAnalyzer兼容Lucene 5.4.0版本抛出异常?

    ava.lang.AbstractMethodError: org.apache.lucene.analysis.Analyzer.createComponents(Ljava/lang/String ...

  2. 360浏览器兼容模式下IE内核版本

    问题 最近在跟客户演示系统时,自己电脑IE 11下好好的,我们web系统最低支持到IE9.在客户电脑上,IE9浏览器下可以正常浏览,但是360兼容模式下,页面什么也不显示. 通过F12调试工具发现,3 ...

  3. HTML5中的语义标签兼容IE8以及更低版本的浏览器

    看某教程,说让HTML5的这些语义标签能够兼容低版本的浏览器,原文是“你可以设置css的display属性为block”.很好理解,就设置css样式为block嘛,那就直接设置咯: header, s ...

  4. android圆角View实现及不同版本这间的兼容(android3.0过后的版本)

    http://blog.csdn.net/lovecluo/article/details/8710174 在做我们自己的APP的时候,为了让APP看起来更加的好看,我们就需要将我们的自己的View做 ...

  5. android 开发 实现多个动态权限的方法(并且兼容6.0以下的版本权限授权)

    android开发权限授权因为版本的不同有不同的授权方式,6.0以下的版本使用的是在注册表中添加权限的静态授权(这种授权权限提示只会出现在app安装的时候),而6.0以上(包含6.0)就需要动态授权的 ...

  6. mysql 安装流程 兼容8.0.0以上版本 解决修改密码规则问题

    背景介绍: 第一次安装mysql服务端,版本8.0.6 遇到了问题:1:不知道流程:2:8.0以上版本密码加密规则修改的解决方案:   1:下载mysql 服务端 https://dev.mysql. ...

  7. 和IE6-IE8说拜拜 一段IE兼容HTML代码 针对IE版本写css

    通过这段html可以让你对特定的ie版本添加内容,只在特定版本ie展现,可以是javascript.css.html. <!--[if IE]> 这样使用IE浏览器(全部版本)的人都看得到 ...

  8. ionic2踩坑之兼容android4.3及以下版本

    一个命令就行了 ionic plugin add cordova-plugin-crosswalk-webview --save 执行完之后重新打包. 但是如果要兼容4.0及以下的话.... 帮不了你 ...

  9. Zxing兼容2.3等低版本

    需要修改的地方 1.InactivityTimer.java public synchronized void onActivity() { ... if (Build.VERSION.SDK_INT ...

随机推荐

  1. android studio 更改快捷键为eclipse中习惯的方式

    虽然之前看了不少android studio的快捷键,但主要开发依然还是在eclipse上,仍然不习惯android studio的快捷键方式,今天看一视频说可以改快捷键为eclipse的方式,不由得 ...

  2. Android 基于Netty的消息推送方案之Hello World(一)

    消息推送方案(轮询.长连接) 轮询 轮询:比较简单的,最容易理解和实现的就是客户端去服务器上拉信息,信息的及时性要求越高则拉信息的频率越高.客户端拉信息的触发可以是一些事件,也可以是一个定时器,不断地 ...

  3. tail-head

    [root@rusky]# tail test3 #不加参数默认显示全部内容 line line2 line3 line4 line5 line6 line7 line8 line9 line10 [ ...

  4. [serverlet][转载: 深入理解HTTP Session]

    [serverlet][转载: 深入理解HTTP Session] 标签(空格分隔): 未分类 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. ...

  5. Linux进程调度与切换

    2016-04-15 张超<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.分析 进程调度的时机与进程 ...

  6. mybatis与spring的整合

    今天是mybatis的最后一天,也是最为重要的一天,mybatis与spring整合,(spring相关知识我会抽一个大的模块进行讲解). 首先加入Spring的依赖 <dependency&g ...

  7. 黑马程序员——HTML语言

    ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...

  8. 武汉科技大学ACM :1002: 零起点学算法28——判断是否闰年

    Problem Description 输入年份,判断是否闰年 Input 输入一个整数n(多组数据) Output 如果是闰年,输出yes,否则输出no(每组数据一行) Sample Input 2 ...

  9. 网站压缩数据 GZIP

    //1.被压缩数据 String str="Hello 你好Hello 你好Hello 你好Hello 你好Hello 你好Hello 你好Hello 你好Hello 你好Hello 你好H ...

  10. poj3685 二分套二分

    F - 二分二分 Crawling in process... Crawling failed Time Limit:6000MS     Memory Limit:65536KB     64bit ...