android换肤机制

来源:互联网 发布:qq三国79第一js万人敌 编辑:程序博客网 时间:2024/05/17 18:11

Lewa乐蛙

1.直接读取外部文件

特点:

  用户选择菜单

  解析引擎

缺点:

  无法为系统和其他app换肤

  适合app级别的换肤

 

2.通过packageManager

特点:

  getResourcesForApplications(String)

  主题包即apk包,自动解析资源;

  手动管理,可控换肤

缺点:

  无法为系统和其他app换肤

  适合app级别的换肤

3.重定义资源ID

 特点

  getResourcesForApplication(String)

  0x01->0x09...

  主题包即apk包,自动解析资源

  自动管理,自动换肤

  可以为系统和app换肤;

缺点

  资源ID变化和资源缺失

  所以为系统换肤还是存在问题

4.重定义资源包路径

特点

  getResourcesForApplication(String)

  AssetManager.addAssetPath(String)

  主题包即apk包,自动解析资源

  自动管理,自动换肤

  可以为系统和app换肤

缺点

  资源包缺少时解决麻烦

5.重定义资源文件路径

特点

 对每个资源文件路径进行重定向

  主题包格式灵活,手动/自动解析资源

  自动管理,自动换肤

  可以为系统和app换肤

  资源缺少时解决简单

缺点

  不支持reference类型

  不支持多值式属性,如arrarys,styles

  不支持layout

 

更改Resources类

  getText

  getValue

  obtainAttribute

  openRawResource

 

Lewa主题包简介

  zip包格式,是各个app局部项的集合

  图片字体壁纸音效开关机动画

  其他资源以app为组织单元,Zip格式

    -Drawable的架构与App保持一致,为方便打包;

    -dimen,string,color等其他值在theme_values.xml定义

 

0 0
原创粉丝点击