Android 主题的更换支持在线主题

    我们在平常使用一些app的时候,或多或少的接触到有一些app带有更换主题的功能,比如白天和晚上主题的更换,甚至于支持在线主题的下载更换.那么这种主题的更换到底是如何实现的呢?

      内置主题

      相信大家都用到过,就是在values文件夹下有对应的style文件,在其中自定义主题,然后在布局文件中使用,然后在activity中通过setTheme(int themeId)方法来指定主题

      总结:这种方法好处就是可以使用android提供的资源,但是相应的坏处就是程序已经发布,主题也就定死了,设计了几种,发布之后就只有那几种了,不能再添加了,显然这对于一个app来说失去了一定的灵活性

     apk主题

     第二种是apk主题:在Android中,所有的资源都是基于包的。资源以id进行标识,在同一个应用中,每个资源都有唯一标识。但在不同的应用中,可以有相同的id。因此,只要获取到了其他应用的Context对象,就可以通过它的getRsources获取到其绑定的资源对象。然后,就可以使用Resources的getXXX方法获取字符串、颜色、dimension、图片等。要想获取其他应用的Context对象,Android已经为我们提供好了接口。那就是android.content.ContextWrapper.createPackageContext(String packageName, int flags)方法

    

     我们可以看到这两种方法的区别,显然第二种比较灵活,但是正是因为它的灵活性,导致了开发这个app的时候需要在代码中设置所有的可变资源,所以app开发的周期变长,当然带给用户的视觉体验必然是要好一些的,毕竟可以由用户自己选择喜欢的主题下载并更换


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值