目的:为了加强用户体验,增强品牌效应,使我们的产品有自己独特的风格,主题的定制将会是必然趋势……然而Android原生系统是不支持主题定制的,所以如何来定制主题,如何做得更好,需要大家集思广益……策略:将介绍两种定制主题的机制:1.根据AndroidConfigurationQualifier机制,加入我们自己的JRDTheme定制。2.用主题包的形式,根据用户选择不同的主题,而加载不同主题包中的资源。基本原理:首先介绍方式一:AndroidConfigurationQualifierAndroid系统为一个项目提供了多套可供选择的资源,通过命名特殊的资源文件夹来区别它们。系统在运行的时候,根据设备的当前配置为每个应用加载合适的资源。这些不同的资源都是放在每个应用的res/目录下面的,特殊的命名方式是<resources_name-<config_qualifier:<resources_name:资源文件夹的名字,与默认资源文件夹保持一致<config_qualifier:根据设备不同配置,需要使用的资源文件夹名字Android系统根据优先级的先后顺序已经支持多种ConfigurationQualifier,如图1:
如何添加JrdThemeResourcesJrdTheme的核心策略是当我们设定了不同的主题后,会自动的替换我们想要替换的资源(Framework&App)。具体步骤如下:1.工程师从UE哪里获得我们想要改变的主题资源,2.把这些资源放到对应模块的res/目录下,以Contacts模块为例,假如我们想要定制drawable、color、layout。原来在Contacts模块中默认的资源目录如下:res/layout/main.xmlinfo.xmldrawable/icon.pngvalues/colors.xml定制后的资源目录如下:res/layout/main.xmlinfo.xmllayout-jrdthemexxx/main.xmlinfo.xmldrawable/icon.pngdrawable-jrdthemexxx/icon.pngvalues/colors.xmlvalues-jrdthemexxx/colors.xmlNotes:jrdthemexxx是其中一个主题的Qualifier,如果有多个主题,那么将会有多个jrdthemexxx存在。3.与原来一样编译这些模块,push到手机中即可。这只是一个guide,具体实现还要细化……目前在diablo、beetle上面已经用这种方式实现了……我在smartiii上尝试过,机制没问题,但是改动的范围太大了,比较麻烦。
方式二:
本文来自“幻想症”用户投稿,该文观点仅代表作者本人,不代表华夏信息网立场,本站不对文章中的任何观点负责,内容版权归原作者所有、内容只用于提供信息阅读,无任何商业用途。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站(文章、内容、图片、音频、视频)有涉嫌抄袭侵权/违法违规的内容,请发送邮件至1470280261#qq.com举报,一经查实,本站将立刻删除、维护您的正当权益。如若转载,请注明出处:http://www.xxxwhg.com/zh/95267.html