如果你用的是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();

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

更多相关文章

  1. Android ListView 滚动条的设置详解及实例代码
  2. Android NDK c调用java代码
  3. Android 代码风格指南
  4. android颜色设置
  5. Android px和dip及sp的区别及转换代码
  6. Android 源代码编译前后的目录结构
  7. Android有用代码片段(三)

随机推荐

  1. android(2)——Structure of an Android(
  2. Android界面设计之:使用水平视图切换
  3. ffmpeg htc
  4. 【Android布局】在程序中设置android:gra
  5. android添加触摸事件
  6. Android(安卓)Developers_DRM
  7. 第一章:hello,Android
  8. Android布局文件中的属性含义
  9. ch010 Android(安卓)GridView
  10. understanding android build layer · D