Android Night Mode 夜间模式实现

夜间模式实现方法一 UiModeManager.setNightMode

先来看效果:

Android Night Mode 夜间模式实现_第1张图片
2514C8C34D9054FA6441CF3F0383A5CF.jpg
Android Night Mode 夜间模式实现_第2张图片
3F283595A86D953501B0D59F3E5D6255.jpg

建立若干资源文件夹,drawable-night-hdpi,drawable-night-xhdpi,drawable-night-xxhdpi,和values-night。在 drawable 文件夹中放入与不带night的文件夹对应的图标,保存图标名一致。在values-night中建立新的 color.xml,存放夜间模式所需的颜色设置。使用这种方式的好处就是通过建立带-night的资源文件夹,就可以通过改变设置,使其读取指定目录下的资源,减少很多原有代码的更改。

例如,(颜色值仅供参考)

colors.xml in values


    #DD7321
    #DD4814
    #FFFFFF

colors.xml in values-night


    #7D4112
    #7D4112
    #1F1F1F

styles.xml in values


完成这些配置后,在需要切换的地方,加上如下代码

UiModeManager uiManager = (UiModeManager) getSystemService(Context.UI_MODE_SERVICE);
if (isNightMode) {
    uiManager.enableCarMode(0);
    uiManager.setNightMode(UiModeManager.MODE_NIGHT_YES);
} else {
    uiManager.disableCarMode(0);
    uiManager.setNightMode(UiModeManager.MODE_NIGHT_NO);
}

你可能感兴趣的:(Android Night Mode 夜间模式实现)