目的:
为了加强用户体验,提高品牌效果,赋予我们的产品独特的风格,主题的个性化将成为必然趋势。
但是Android原生系统不支持主题定制,所以需要如何定制主题,如何做得更好,集思广益。……。
政策:
介绍了两种自定义主题的机制。
1.根据Android Configuration Qualifier机制添加我们自己的JRDTheme自定义。
2.以主题包的形式,根据用户是否选择不同的主题,加载不同主题包的资源。
基本原则:
首先介绍方法1:
Android Configuration Qualifier
Android系统为项目提供了多种可供选择的资源,通过命名特殊资源文件夹来区分这些资源。系统运行时,根据设备的当前配置,为每个应用程序加载相应的资源。
这些不同的资源放置在每个应用程序的res/目录下,特殊的命名方法是resources _ name-config _ qualifier 3360
与默认资源文件夹相匹配的resources_name:资源文件夹的名称
根据Config_qualifier:设备的配置,要使用的资源文件夹名称
Android系统根据优先级支持多种配置鉴定表,如图1所示。
如何添加Jrd Theme Resources
JrdTheme的核心战略是在我们设定其他主题时自动取代我们想要改变的资源(FrameworkApp)。具体步骤如下:
1.工程师从UE哪里得到我们想改变的主题资源?
2.将这些资源放置在相应模块的res/目录中。例如,要自定义drawable、color和layout,请以Contacts模块为例。
原始Contacts模块的默认资源目录为:
Res/
Layout/
Main.xml
磷
Drawable/
Icon.png
Values/
Colors.xml
用户定义的资源目录如下:
Res/
Layout/
Main.xml
磷
Layout-jrdthemexxx/
Main.xml
磷
Drawable/
Icon.png
Drawable-jrdthemexxx/
Icon.png
Values/
Colors.xml
Values-jrdthemexxx/
Colors.xml
note : JRDTHEMEXX是一个主题的Qualifier。如果有多个主题,则存在多个JRDTHEMEXX。
3.和原来一样编译这些模块,把推送放到手机里就可以了。
这只是指南,具体实施要细分……。目前在Diablo,beetle以这种方式实施……。我在smartiii上试过,但是机制还可以,但是变化范围太广了,所以比较棘手。
方法2:
核心思想:系统有多个主题资源包,应用程序可以使用相同的资源ID访问不同资源包中的相应资源。Android基本系统的资源访问过程有三种:
样式:
第一种常用方法是使用XML定义,并通过AAPT工具生成R文件。该文件包含R文件,其中列出了资源索引,以便Android系统可以通过整个资源树进行访问。
其次,通过Resources接口访问,并使用Resources类的getDrawable、getString等接口获取资源。
第三,通过AssetManager类的接口访问,使用该类的open方法返回InputStream对象以获取资源。
事实上,这三种方法只是Android资源访问整个过程中不同级别外部提供的三个接口,到底层的实现都是以相同的方式完成的。
因此,实际上需要修改的一些骨干是在访问资源的特定路径之前,根据当前系统主题设置访问不同资源APK下的文件。
就是将原生Android的资源ID和资源文件路径之间的一对一关系更改为一对多关系。
例如:如果原始资源ID和资源文件路径关系如下:
R.drawable.image01=0x7F020001
通过系统上的资源找到后,文件路径为/system/a中的res/drawable_hdpi
AssetManager native读取并上传资源。
然后,从接收路径读取资源时,必须将文件路径替换为/data/a下的res/drawable_hdpi
1.文章《【安卓系统怎么刷奥迪主题】Android如何自定义主题?》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《【安卓系统怎么刷奥迪主题】Android如何自定义主题?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好