drawable文件夹放日间模式图片,drawable-night文件夹放夜间模式图片。
value的color文件夹设置日间模式颜色,value-night的color文件夹设置夜间模式颜色
然后在项目所有的xml配置中涉及有图片和颜色的地方,都在对应地方设置日夜间模式两种。
日夜间状态有两种切换方法
AppCompatDelegate.setDefaultNightMode(mode) 可以设置全局的夜间模式
AppCompatDelegate.setLocalNightMode(mode)可以设置局部的夜间模式
mode值有四种
MODE_NIGHT_NO: 亮色(light)主题,不使用夜间模式
MODE_NIGHT_YES:暗色(dark)主题,使用夜间模式
MODE_NIGHT_AUTO:根据当前时间自动切换 亮色(light)/暗色(dark)主题(22:00-07:00时间段内自动切换为夜间模式)
MODE_NIGHT_FOLLOW_SYSTEM(默认选项):设置为跟随系统,通常为MODE_NIGHT_NO
设置完后,一般都需要调用recreate()才能生效。
我们一般会选择保存下日夜间模式的状态
在Application中进行初始化。
根据app上次退出的状态来判断是否需要设置夜间模式,提前在SharedPreference中存了一个是否是夜间模式的bool