换肤

换肤

1. 换肤的应用场景?

一般应用在某些APP,在节假日更换主题,或者切换白天或者夜间模式时使用.

2. 换肤的实现方案

  1. 方案1

     1. 将图片以及颜色按照主题命名,使用虚拟文件夹, 直接在各个控制器针对不同主题单独设置
         缺点 :
             1. 扩展性差, 增加一个主题非常复杂
             2. 代码分散, 可维护性差
             3. 使用虚拟文件夹保存资源, 容易与其他资源容易产生冲突
    
  2. 方案2

     2. 抽取公共的切换主题类, 使用物理文件夹, 并将图片按照应用场景命名, 不按照主题命名, 但是按照主题划分文件夹
     优点:
         1. 扩展性好, 增加主题简单
         2. 功能代码集中, 方便维护
         3. 资源包单独管理, 不会产生资源冲突
    

3. 实现步骤(采用方案2)

1. 实现基本的换肤功能
2. 使用用户偏好记录当前皮肤主题
3. 抽取公共的皮肤管理类, 简化控制器逻辑
4. 验证多处加载主题情景
5. 加载主题文字颜色功能实现

4. demo准备中,即将上传

你可能感兴趣的:(换肤)