安卓2.x的版本使用4.x的主题
现在,还有大部分安卓开发者在开发安卓APP时使用的是2.x的SDK版本,为了兼容2.x的手机这本倒无可厚非,但最令人头痛的就是2.x版本的主题是在太丑了,这是安卓刚推出时只考虑到了实用,并没考虑到美观,而现在上至操作系统下至应用软件都以漂亮的界面,舒适的操作体验为前提,那么是否可以,既兼容2.x又可以使用4.x的主题风格呢?答案当然是有的!
有时我们在安装某APP时,会看到支持最低版本为2.1,2.2等,但是打开该应用其主体风格确实4.x的,我们可能会这样想,既然能支持2.1,2.2那它使用的SDK版本应该为2.x,但为什么主题风格确实4.x的呢?道理很简单,既然是4.x的主题风格,那肯定是用4.x的SDK版本编译的,为了实现这种效果,可以在代码中动态的判断当前系统的版本,如果在11以下就使用2.x的主题风格,如果在11以上就是用4.x的主题风格,可以创建一个BaseActivity,判断代码放入其中,其他Activity全部继承BaseActivity即可,主要代码如下:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { setTheme(android.R.style.Theme_Black_NoTitleBar); }else{ setTheme(android.R.style.Theme_Holo_Light); } requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
该段代码放置在onCreate方法中,super.onCreate(savedInstanceState);之前,并在AndroidManifest.xml文件中声明最低支持版本,一般为7,或者8就可以了:
<uses-sdk android:minSdkVersion="7" />
最后一点,有些同学在用此方法后,打开APP的一瞬间会看先看到一个带标题栏黑色的界面一闪而过,这样大家可以先在AndroidManifest.xml中定义一个默认主题即可:
android:theme="@android:style/Theme.Black.NoTitleBar"
此后,我们就可以不必再使用2.x的SDK去编译项目了。
还有一点需要注意,就是如果项目使用了TabActivity,需要在你的TabMainActivity中用同样的方法去判断。
安卓2.x的版本使用4.x的主题的更多相关文章
- adb查看安卓设备系统Android版本
adb shell getprop "ro.build.version" 结果中如下两项便是版本信息: [ro.build.version.release]: [4.4.4][ro ...
- 安卓 API 19 低版本设置自带的圆圈效果
在 Android API 19 环境下,RadioButton 消除或者自定义自带的圆圈效果的形式来设置: 自定义自身选择图标 android:button="@drawable/sele ...
- 在安卓3.0以下版本使用Fragment的注意事项
1. 按照网上的Fragment官网资料翻译来做一直有错: 10-03 02:43:13.971: E/AndroidRuntime(1921): java.lang.RuntimeException ...
- 移动端测试===安卓设备共享程序-发布版本“share device”
分享一个开源的项目 share device 项目地址:https://github.com/sunshine4me/ShareDevicePublish/tree/win7-x64 首先选择对应系统 ...
- 安卓4.3以上版本已经完美支持BLE(英文版)
Android 4.3 (API Level 18) introduces built-in platform support for Bluetooth Low Energy in the cent ...
- 使用axios对安卓或者ios低版本兼容性处理
原因:不支持ES6,无法使用promise 解决办法: 1.安装 es6-promise cnpm install es6-promise --save-dev 2.引入 es6-promise im ...
- adb获得安卓系统版本及截屏
[时间:2017-09] [状态:Open] [关键词:adb, android,系统版本,截屏,screencap] 本文主要是我遇到的android命令行用法的一个简单总结 系统版本 获取系统版本 ...
- 当在安卓低版本呈现的界面(H5)出现问题的时候,我们怎么解决?
昨天,在医院现场的客服人员,向我们反馈一个问题:说一位用户用他的安卓手机打开我们的app之后,界面是乱掉的:如下图: 向客服询问了具体的设备信息:安卓系统版本号是4.2 下意识觉得是因为css的兼容问 ...
- 安卓记账本开发学习day5之版本兼容问题
安卓5.0以上版本想要隐藏DatePicker头布局的写法比较复杂,需要一层一层隐藏 int headerId = getContext().getResources().getIdentifier( ...
随机推荐
- ES6(解构赋值)
解构赋值 1.什么是解构赋值? 在语法上,就是赋值的作用,解构为(左边一种解构.右边一种解构,左右一一对应进入赋值) 2.解构赋值的分类. 1.左右为数组即为数组解构赋值:2.左右为对象即为对象解构赋 ...
- 注意类型转换——Effective C++
注意类型转换: C++提供了四种新式类型转换: const_cast<T>(expression); static_cast<T>(expression); dynamic_c ...
- 计蒜客NOIP2017提高组模拟赛(五)day1-机智的 AmyZhi
传送门 很水的题目啦QAQ #include<cstdio> #include<cstdlib> #include<algorithm> #include<c ...
- hdu 2296 aC自动机+dp(得到价值最大的字符串)
Ring Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- POJ 3233 (矩阵)
题意:对于矩阵A,求A^1 + ...... + A^k 按照矩阵十大经典题的思路大致做了下. 在k为奇数时: A^( k / 2+1)+ 1) * (A^1 + ....... A^(k/2)) ...
- bzoj 5000: OI树
Description 几天之后小跳蚤即将结束自己在lydsy星球上的旅行.这时,lydsy人却发现他们的超空间传送装置的能量早在小跳 蚤通过石板来到lydsy星球时就已经消耗光了.这时,小跳蚤了解到 ...
- [BZOJ]1076 奖励关(SCOI2008)
终于又一次迎来了一道期望DP题,按照约定,小C把它贴了出来. Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃 ...
- HWM、PCTFREE、PCTUSED
什么是水线(High Water Mark)? HWM通常增长的幅度为一次5个数据块,原则上HWM只会增大,不会缩小,即使将表中的数据全部删除,HWM还是为原值,由于这个特点,使HWM很象一个水库的历 ...
- ScalaPB(0): 找寻合适的内部系统微服务集成工具
前一段时间我们探讨了SDP的一个基于集群的综合数据平台解决方案,由多种数据库组成,包括:JDBC, Cassandra 及MongoDB.其中Cassandra和MongoDB属于分布式数据库,可以在 ...
- jquery post跨域请求数据
原先一直以为要实现跨域请求只能用jsonp,只能支持GET请求,后来了解到使用POST请求也可以实现跨域,但是需要在服务器增加Access-Control-Allow-Origin和Access-Co ...