您的位置:首页 > 移动开发 > Android开发

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

2016-03-21 13:44 489 查看
我们在平常使用一些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开发的周期变长,当然带给用户的视觉体验必然是要好一些的,毕竟可以由用户自己选择喜欢的主题下载并更换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: