android夜间模式的实现

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天嘟嘟的幼儿园开家长会,其实也没有什么特别的事儿,主要是让家长在家配合、尽量别让孩子缺课之类的。 会议最后老师说...
    Laura娟娟阅读 3,477评论 0 0
  • 1.什么是Vim? Vim比较难初学者通过维基百科 基本了解就行本博客介绍Vim的基本入门使用 2.为什么要使用V...
    从前慢pearl阅读 2,985评论 0 0
  • 很久没有惬意的记录下自己的心情了。在这样一个快节奏的时代,所有的事情敢问一句有哪些是真的?答案当然是有。父母的爱。...
    温室里的风信子阅读 1,644评论 0 0