开发者社区> 问答> 正文

移动开发皮肤如何动态下载切换

在移动开发中,界面要的求是很高的,一直想着要如何能根据皮肤包进行皮肤的自由切换

思路:上传服务端一个皮肤包,客户端进行下载,而后进行皮肤的切换,各位大神请问有什么设计思路或者方案,主要是适应android,ios

展开
收起
杨冬芳 2016-06-28 15:35:17 2637 0
1 条回答
写回答
取消 提交回答
  • IT从业

    动态换肤在很多android应用中都有使用,用户根据自己的喜好设置皮肤主题,可以增强用户使用应用的舒适度。
    Android换肤可以分为很多种,它们从使用方式,用户体验以及项目框架设计上体现了明显的差异。
    接下来几篇文章分别讲解其中比较主流的换肤方式。

    应用内置皮肤实现动态切换在技术上是最容易实现的,但有很多局限性,比如不能在使用过程中增减皮肤,除非升级应用,扩展性很弱;如果需要设置皮肤的位置很多,编码起来比较麻烦。主要是使用 SharedPreferences记录当前设置的皮肤序号,然后加载这套皮肤的所有资源,在每个activity中有一个setSkin()的方法设置皮肤。

    实现:
    确定需要换肤的地方
    首先要确定应用中那些界面需要换肤,他们有什么共性?比如天天动听,一套以蓝色为基调的皮肤,所有的界面title应该是蓝色的,所有的按钮也是蓝色系列的…,这样就可以确定一套皮肤需要哪些颜色以及资源文件。
    确定一套皮肤需要的资源(其余皮肤按照第一套皮肤模板做)
    比如首页,四个模块,其中 本地音乐和 最近播放 的颜色是一样的,这里需要两个颜色值(正常和按下状态),歌曲下载 和 MV下载 的颜色是一样的,这里也需要两个颜色值,每个界面的标题背景色相同,然后一些按钮也需要两个颜色值;综合起来就需要7个色值,在color.xml文件中定义好它们,然后再drawable目录定义好选择器。
    (以下是Demo中的代码片段,真实项目开发中只需要按照这个步骤模板做就行)
    编写SkinUtil资源加载类
    使用皮肤
    在Application中初始化皮肤工具类
    定义BaseActivity
    实现setSkin()方法设置皮肤
    源码下载
    https://github.com/openXu/SkinChange1

    2019-07-17 19:48:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何高效的制作主机次时代游戏 立即下载
如何高效的制作主机次时代游戏——高效游戏制作流程 立即下载
函数计算最佳实践:快速开发一个分布式 Puppeteer 网页截图服务 立即下载