多套主题怎么灵动换肤?APP换肤方案详细解析!

背景需求

目前Android APP换肤大体可分为两大类:

  • 两套主题的切换(比如白天/黑夜),使用一个开关按钮进行切换。
  • 多套主题在线下载并更新。

第一种的实现基本上使用设置本地Theme来操作,即将所有的资源打包到APP中,并且根据主题进行切换。 第二种不可能使用第一种的实现方式,因为将所有资源都打包到APP中缺乏灵活性,不利于活动的更新,并且也会使得apk包的体积变大。所有第二种的实现必须是支持线上下载的。

方案选择

配合产品的需求并且能实现换肤的灵动性,我们选择上述的第二种方案。经过之前的AndroidIOS成员小组讨论,统一觉得可以采用下载压缩包,并通过解析压缩包读取资源进行替换。

压缩包下载下来后怎么读取资源?这里有两种方式:

  • 将下载的皮肤包进行解压缩并且通过文件流的方式读取里面的图片资源、文件资源。
  • 将下载的皮肤包加载到assetManager管理器中,并通过该管理器新建一个Resource对象,需要换肤的控件通过Resource对象进行读取资源。

第一种方式需要手动开启文件流,并且不同的文件流有不同的文件流方式,比如图片、文本文件等,还有不同设备由于分辨率加载的资源是不同的,如何合理地去选择合适的资源去加载也是一个需要解决的问题。

第二种方式需要将皮肤包加载到assetManager管理器,<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值