这是一个简单的夜间模式实现方式,
步骤简单。可供初学者使用
首先下载https://download.csdn.net/download/qq_41762084/10678900这是一个deme类型的jar;
使用前请安步骤操作
第一步创建
values文件下的
atts.xml
设置颜色切换状态的名字
colors.xml
配置需要用到的颜色
#3F51B5
#303F9F
#EB3F3B
#DA2C15
#DD403B
#FF331515
#5B5B5B
#B5B4B4
#FFFFFF
#000000
#DD403B
#746464
#FF9000
#3A3A3A
#263238
#1E282D
#73432A
#F2F4F7
#000
#fff
#37474F
#263238
#fff
//白黑
#ef3919
#792929
在
styles.xml
配置夜间和白天的模式
做完以上操作后
接下来需要在xml布局里设置布局的背景
记住
每一个可以看见的布局都应该设置背景,
具体操作如下
在需要操作的Activity里的
onCreate方法下面一行
添加如下代码:
ChangeModeController.getInstance().init(this, R.attr.class).setTheme(this, R.style.DayTheme, R.style.NightTheme);
设置监听按钮
if (is) {
//第二步 设置切换
Toast.makeText(context, "夜间模式开", Toast.LENGTH_SHORT).show();
ChangeModeController.changeNight((Activity) context, R.style.NightTheme);
ChangeModeController.getAttrTypedValue((Activity) context, R.attr.zztextColor);
bo(is);
} else {
bo(is);
ChangeModeController.changeDay((Activity) context, R.style.DayTheme);
ChangeModeController.getAttrTypedValue((Activity) context, R.attr.zztextColor);
Toast.makeText(context, "夜间模式关", Toast.LENGTH_SHORT).show();
}
在onDstroy里设置
@Override
protected void onDestroy() {
super.onDestroy();
//第三步 在onDestroy调用
ChangeModeController.onDestory();
}
以上都是操作步骤,没有讲实现原理,但是可以达到立竿见影的效果
如有不懂的地方,可以留言交流,里面不足,望大家多多批评指正