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 {
}
网友评论