美文网首页
android夜间模式的实现

android夜间模式的实现

作者: 名字_都被占了 | 来源:发表于2018-09-18 19:27 被阅读0次
    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

    相关文章

      网友评论

          本文标题:android夜间模式的实现

          本文链接:https://www.haomeiwen.com/subject/gzumnftx.html