Android最简单实现日夜间模式切换
16lz
2021-01-23
如果你用的是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 ListView 滚动条的设置详解及实例代码
- Android NDK c调用java代码
- Android 代码风格指南
- android颜色设置
- Android px和dip及sp的区别及转换代码
- Android 源代码编译前后的目录结构
- Android有用代码片段(三)