public void yejian(){ 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); } else { // blah blah } recreate(); }
新建夜间模式资源文件夹:在res
目录下新建values-night
文件夹,然后在此目录下新建colors.xml
文件在夜间模式下的应用的资源。当然也可以根据需要新建drawable-night
,layout-night
等后缀为-night
的夜间资源文件夹。
我的values
和values-night
目录下的colors.xml
的内容如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#35464e</color> <color name="colorPrimaryDark">#212a2f</color> <color name="colorAccent">#212a2f</color> <color name="textColorPrimary">#616161</color> <color name="viewBackground">#212a2f</color> </resources>
-
让我们自己的主题继承并应用DayNight主题。
- <style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
- <item name="colorPrimary">@color/colorPrimary</item>
- <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
- <item name="colorAccent">@color/colorAccent</item>
- <!--customize your theme here-->
- </style>