Android从入门到放弃

黑暗模式

2020-04-02  本文已影响0人  小耗子_20da

1、继承主题

Theme.AppCompat.DayNight.NoActionBar
//或者
Theme.MaterialComponents.DayNight

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

2、Theme.MaterialComponents.DayNight模式下常用的资源

?android:attr/textColorPrimary //这是一种通用型文本颜色。它在浅色主题背景下接近于黑色,在深色主题背景下接近于白色。该颜色包含一个停用状态。
?attr/colorControlNormal  //一种通用图标颜色。该颜色包含一个停用状态。
?android:attr/colorBackground //背景颜色

?attr/colorSurface 
?attr/colorOnSurface

3、res资源适配

在res下添加values-night文件夹,黑暗模式下的资源方在该文件夹下,如图


values-night

4、java中判断是否为黑暗模式

       //Configuration.UI_MODE_NIGHT_YES;//黑暗主题
       //Configuration.UI_MODE_NIGHT_NO;//非黑暗主题
        int mMode = context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
        if (mMode == Configuration.UI_MODE_NIGHT_YES) {
        } else {
        }
上一篇下一篇

猜你喜欢

热点阅读