白天夜间主题
夜间和白天模式很好理解。自动就是根据时间判断是否为白天和夜间,自动选择对应主题。 跟随系统则使用系统的值,依赖系统。
实现原理
通过两组主题,分别放在values和values-night下面,系统根据你设置的模式,对应的去找主题配置值,然后设置上去即可。
使用说明
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