自定义一个theme在不同的sdk环境下继承不同的值
2013-01-11 18:04
591 查看
先说一下自己的一点小心得:
可能很多在高版本下编绎apk的同学,可能都曾有和我一样的困惑,就是如何让低版本的用户也能有高版本的体验呢,比如3.0才能用的holo style.
于是很多人为此求助了很多开源的sdk,比如holo everywhere,sherlockactionbar等等,但是这些库都很庞大,而且通常添加进去以后,在低版本的机子上也会严重影响到应用运行的速度。所以我们为何不想想,我们的出发点是否也是用户的需求呢?对于这个问题,我女友给了一个否定的答案,她用的是android 2.1她说,她已经习惯2.1那个对话框了,她觉得android对话框本来就是这样,4.0的一点也不好看,所以可能对于很多2.1~2.3的用户,holo并不是他们需要和追求的必备品。只要用他们熟悉的控件就好没必要在自己的软件中强制的让他们体验4.0的风格,否则可能物极必反。而且花心思去自定义原生的alertDialog,真的不如花时间改进其他性能。
所以我觉得正确的做法应该是:不去追求自己应用在所有的Sdk中表现完全一致,而是从用户的角度,使用他们熟悉的风格。于是才引出了题目中的方法:
技术的部分就相当简单了:
1.更改sdk至3.0及以上
2.在res的values-v11和values里分别新建一个styles.xml
3.values-v11下添加 <style name="AppTheme" parent="android:Theme.Holo.Light">
4.values下添加 <style name="AppTheme" parent="@android:style/Theme.Light">
5.manifest.xml下的application下添加 android:theme="@style/Theme.GreenDroid.Light" >
其实就是自定义一个theme在不同的sdk环境下继承不同的值。
可能很多在高版本下编绎apk的同学,可能都曾有和我一样的困惑,就是如何让低版本的用户也能有高版本的体验呢,比如3.0才能用的holo style.
于是很多人为此求助了很多开源的sdk,比如holo everywhere,sherlockactionbar等等,但是这些库都很庞大,而且通常添加进去以后,在低版本的机子上也会严重影响到应用运行的速度。所以我们为何不想想,我们的出发点是否也是用户的需求呢?对于这个问题,我女友给了一个否定的答案,她用的是android 2.1她说,她已经习惯2.1那个对话框了,她觉得android对话框本来就是这样,4.0的一点也不好看,所以可能对于很多2.1~2.3的用户,holo并不是他们需要和追求的必备品。只要用他们熟悉的控件就好没必要在自己的软件中强制的让他们体验4.0的风格,否则可能物极必反。而且花心思去自定义原生的alertDialog,真的不如花时间改进其他性能。
所以我觉得正确的做法应该是:不去追求自己应用在所有的Sdk中表现完全一致,而是从用户的角度,使用他们熟悉的风格。于是才引出了题目中的方法:
技术的部分就相当简单了:
1.更改sdk至3.0及以上
2.在res的values-v11和values里分别新建一个styles.xml
3.values-v11下添加 <style name="AppTheme" parent="android:Theme.Holo.Light">
4.values下添加 <style name="AppTheme" parent="@android:style/Theme.Light">
5.manifest.xml下的application下添加 android:theme="@style/Theme.GreenDroid.Light" >
其实就是自定义一个theme在不同的sdk环境下继承不同的值。
相关文章推荐
- 实现一个自定义layout的常规做法是继承UICollectionViewLayout类,然后重载下列方法:
- 一个抽象类Shape 里边有两个抽象方法 计算面积 和 周长; Shape由三角形和圆形继承,利用多态的特性设计完成不同子类的功能
- iOS SDk:创建一个自定义文本输入框
- 安装Symbian的多个SDK,在多个SDK共存在情况下,要使用不同的SDK环境编译应用程序
- Qt自定义带游标的slider,在滑块正上方显示当前值(非常有意思,继承QSlider之后增加一个QLabel,然后不断移动它)
- (转)自定义一个控件继承基类usercontrol,但是不能输入中文
- 同一个程序不同环境运行结果不同?
- xcode创建一个工程的多个target,应对不同的环境
- 用自定义routes把不同的querystring名对应到action同一个参数上
- 企业生产环境不同业务,系统分区建议(自定义分区布局)
- 用自定义继承Animation写一个跑圈运动
- Hadoop中自定义Partitioner,但是不同的key仍然在一个输出文件中
- iOS SDK:创建一个自定义文本输入框
- MinGW 环境下 给hello.exe 自定义一个图标
- 【自定义Joomla样式】Joomla2.5 为article添加一个cssflag字段控制页面展示时引用不同的自定义css
- 关于android开发环境中sdk和adt更新到22.6之后多了appcompat_v7和avd无法创建一个模拟器
- 内部类大展身手 ———— 多个内部类以不同的方式实现同一个接口,或继承同一个类
- ios中的开发一些小工具(就是一个写UIView的自定义组件的脱离环境,可以重新使用)解耦
- 自定义一个能接收不同数据类型的链表
- 如何部署同一个Spring boot web 应用到不同的环境