安卓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中用同样的方法去判断。




评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白玉梁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值