夜间模式实现简单步骤,可有立竿见影之效果


这是一个简单的夜间模式实现方式,
步骤简单。可供初学者使用
首先下载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();
    }

以上都是操作步骤,没有讲实现原理,但是可以达到立竿见影的效果
如有不懂的地方,可以留言交流,里面不足,望大家多多批评指正