Android最简单实现日夜间模式切换

如果你用的是Android studio开发,则先把Android工程切换为Project,在你的项目下的res目录下创建一个values-night文件夹,并在这个文件夹下创建colors.xml文件,代码如下

    <color name="colorPrimary">#3F51B5
    <color name="colorPrimaryDark">#303F9F
    <color name="colorAccent">#FF4081

    <color name="textColorPrimary">#616161
    <color name="viewBackground">#212a2f

再看你的values文件夹下的colors.xml的代码

    "colorPrimary">#3F51B5
    "colorPrimaryDark">#303F9F
    "colorAccent">#FF4081

    "textColorPrimary">#616161
    "viewBackground">@android:color/white

这两个文件的不同就是其背景和文字的颜色不同,如果你布局里已经给你的文字和背景设置过颜色,则这两行颜色改变不起作用,你需要自己在colors.xml中定义两套主题颜色。接下来再来看看style.xml文件中的改变:

其实就是把你主题中的Night改成了DayNight,就这么简单,接着看代码怎么实现切换

 int mode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
                if(mode == Configuration.UI_MODE_NIGHT_YES) {
                    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
                } else if(mode == Configuration.UI_MODE_NIGHT_NO) {
                    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
                }
                recreate();

可以将上面的代码放到你的监听事件里,这样就可以最简单的实现日夜间模式的切换了

你可能感兴趣的:(Android小技巧)