换肤
1. 换肤的应用场景?
一般应用在某些APP,在节假日更换主题,或者切换白天或者夜间模式时使用.
2. 换肤的实现方案
-
方案1
1. 将图片以及颜色按照主题命名,使用虚拟文件夹, 直接在各个控制器针对不同主题单独设置 缺点 : 1. 扩展性差, 增加一个主题非常复杂 2. 代码分散, 可维护性差 3. 使用虚拟文件夹保存资源, 容易与其他资源容易产生冲突
-
方案2
2. 抽取公共的切换主题类, 使用物理文件夹, 并将图片按照应用场景命名, 不按照主题命名, 但是按照主题划分文件夹 优点: 1. 扩展性好, 增加主题简单 2. 功能代码集中, 方便维护 3. 资源包单独管理, 不会产生资源冲突
3. 实现步骤(采用方案2)
1. 实现基本的换肤功能
2. 使用用户偏好记录当前皮肤主题
3. 抽取公共的皮肤管理类, 简化控制器逻辑
4. 验证多处加载主题情景
5. 加载主题文字颜色功能实现