Scoops android app多主题架构(三)
2016-07-12 09:10
295 查看
白天夜间主题
很多应用都有这个功能,可以选择白天和夜间模式,给用户更好的体验。为此,系统也提供了一种机制,来实现此功能。
模式主要分为四种 夜间 白天 跟随系统 和自动。具体实现可以去看com.android.support:appcompat-v7:23.0.0源码
夜间和白天模式很好理解。自动就是根据时间判断是否为白天和夜间,自动选择对应主题。跟随系统则使用系统的值,依赖系统。
实现原理
通过两组主题,分别放在values和values-night下面,系统根据你设置的模式,对应的去找主题配置值,然后设置上去即可。
使用说明
不使用Scoops
1自定义一个属性Attrs.xml
这里可以看到定义了两个属性textColor和textSize 格式分别为color和dimension
2创建一个目录values-night
3在values和values-night下面新建一个文件themes.xml,同时配置相同的主题,加入我们自定义的属性textColor,给它配置值。
values下的属性
values-night下的属性
4使用的地方
这里mMode的值可以取以下几个
MODE_NIGHT_FOLLOW_SYSTEM
MODE_NIGHT_YES
MODE_NIGHT_NO
MODE_NIGHT_AUTO
5我们配置下使用的地方
这里的 android:textColor=”?attr/textColor” 记住用的是?attr来使用自定义的属性
6具体的结果,看Primary Color颜色变化
7代码地址:https://github.com/luxiaoming/ScoopsDemo
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories