重点 (二十六) : 硬件/换肤

一. 硬件信息的获取

  1. 应用场景

例如

QQ空间APP 发说说时, 出现的什么什么型号的手机;

迅雷APP 下载文件时提示剩余空间,已用空间

  1. 实现方案

直接通过第三方工具类(UIDevice的分类), 进行获取对应信息

原因: 自己写起来比较复杂, 很多C语言的东西, 而且没有必要;

  1. 框架完善

框架存在问题: 该第三方框架从2012年就停止更新了,意味着12年之后的手机型号都没有, 需要手动添加, 修改框架

解决方案: 找到对应的实现方法, 使用真机进行测试, 手动新增手机型号

二. 换肤

  1. 换肤的应用场景?

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

  1. 换肤的实现方案

  2. 方案1

  3. 将图片以及颜色按照主题命名,使用虚拟文件夹, 直接在各个控制器针对不同主题单独设置

缺点:

  1. 扩展性差, 增加一个主题非常复杂

  2. 代码分散, 可维护性差

  3. 使用虚拟文件夹保存资源, 容易与其他资源容易产生冲突

  1. 方案2

  2. 抽取公共的切换主题类, 使用物理文件夹, 并将图片按照应用场景命名, 不按照主题命名, 但是按照主题划分文件夹

优点:

  1. 扩展性好, 增加主题简单

  2. 功能代码集中,
    方便维护

  3. 资源包单独管理,
    不会产生资源冲突

演练步骤

  1. 实现基本的换肤功能

  2. 使用用户偏好记录当前皮肤主题

  3. 抽取公共的皮肤管理类, 简化控制器逻辑

  4. 验证多处加载主题情景

  5. 加载主题文字颜色功能实现

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,268评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,095评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,148评论 6 342
  • 一星期之前,她就告诉我,今天见面有事和我说,我是一个止不住好奇心的人,问了半天,猜了无数种可能,想想她还有什么事情...
    小婵姑娘阅读 2,701评论 0 0
  • 这个函数的作用是将带有连接符的字符串转换成驼峰格式 例: "my-test-code"//这种类型转换成 "myT...
    报告老师阅读 4,678评论 0 0

友情链接更多精彩内容