Android 主题的更换支持在线主题
2016-03-21 13:44
489 查看
我们在平常使用一些app的时候,或多或少的接触到有一些app带有更换主题的功能,比如白天和晚上主题的更换,甚至于支持在线主题的下载更换.那么这种主题的更换到底是如何实现的呢?
总结:这种方法好处就是可以使用android提供的资源,但是相应的坏处就是程序已经发布,主题也就定死了,设计了几种,发布之后就只有那几种了,不能再添加了,显然这对于一个app来说失去了一定的灵活性
int flags)方法
我们可以看到这两种方法的区别,显然第二种比较灵活,但是正是因为它的灵活性,导致了开发这个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开发的周期变长,当然带给用户的视觉体验必然是要好一些的,毕竟可以由用户自己选择喜欢的主题下载并更换
相关文章推荐
- 2015总结和Android开发工程师简历的书写
- Android之ContentProvider与ContentResolver
- 腾讯 Bugly for Xamarin Android 的插件
- Android Fragment 完全解析
- Android滑动事件冲突详解
- 关于沉浸模式 状态栏颜色 底部虚拟键相关
- Android xposed框架开发入门
- Android图片加载缓存框架Glide
- Android规范文档使用
- 最火的Android开源项目整理
- 最流行的android组件大全
- Android中SQLite数据库存储
- Android开发笔记(八十三)多语言支持
- Android+FFmpeg+OpenSL ES音频解码播放
- Android+FFmpeg+ANativeWindow视频解码播放
- Android内存信息:VSS、RSS、PSS、USS
- Android可以纵向滚动的textView
- Android Studio中集成fresco,解决冲突的问题。
- Android Studio:Error:(23, 17) Failed to resolve: junit:junit:4.12
- Unsupported major.minor version 52.0