AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);//设置为日间模式
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);//设置为夜间模式
添加values-night文件,在其下面创建colors.xml,styles.xml文件用来展示夜间模式下的主题和颜色
日间模式下的style.xml的内容如下:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorPrimaryDark">@android:color/holo_blue_dark</item>
</style>
夜间模式下的style.xml的内容如下:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorAccent">@color/colorPrimaryDark</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
</style>
日间模式下的color.xml的内容如下:
<color name="colorPrimary">#FF6EB4</color>
<color name="colorAccent">#FF6EB4</color>
<color name="colorPrimaryDark">#126cb9</color>
<color name="xiantiao">@color/colorGray2</color>
<!--通用背景色-->
<color name="common_bg">@color/colorGray2</color>
<color name="common_bg1">#ffffff</color>
<!--通用触摸背景色-->
<color name="common_touch_bg">#ffffff</color>
<!--通用背景色-->
<color name="common_gray_bg">#EEEEEE</color>
<!--通用一级标题的颜色-->
<color name="common_h1">#212121</color>
<!--通用二级标题的颜色-->
<color name="common_h2">#ffffff</color>
<!--通用三级标题的颜色-->
<color name="common_h3">#EFEEF1</color>
<!--通用分割线细-->
<color name="common_divider_narrow">#E3E3E3</color>
<!--通用分割线粗-->
<color name="common_divider_wide">@color/light_white</color>
夜间模式下的color.xml的内容如下:
<color name="colorPrimary">#212121</color>
<!--状态栏的颜色-->
<color name="colorPrimaryDark">@color/black</color>
<!--控件的选中颜色,即checked或selected状态的颜色。-->
<color name="colorAccent">#212121</color>
<color name="xiantiao">#3C3C3C</color>
<color name="common_touch_bg">#3C3C3C</color>
<!--通用背景色-->
<color name="common_gray_bg">#333333</color>
<!--通用一级标题的颜色-->
<color name="common_h1">#999999</color>
<!--通用二级标题的颜色-->
<color name="common_h2">#666666</color>
<!--通用三级标题的颜色-->
<color name="common_h3">#999999</color>
<!--通用分割线细-->
<color name="common_divider_narrow">#232323</color>
<!--通用分割线粗-->
<color name="common_divider_wide">#333333</color>
然后切换夜间模式后,系统会到夜间模式的color.xml下读取相同变量名的值。
参考文章:
https://blog.csdn.net/huangbin123/article/details/78723065
网友评论