通过代码在Android中切换夜灯模式

时间:2019-07-10 16:19:05

标签: android android-night-mode

是否可以在Android中激活夜灯模式? 我正在开发一个自动化应用程序,并且需要根据用户情况激活夜间模式。 根据供应商(同样,Android不是很标准)的不同,它的调用方式也不同,例如“蓝色滤镜”或“阅读”模式。 我在网上找不到任何代码来编写此代码。

我看到了这个link,但我听不懂。我需要这样的功能:

public void setNightMode(Context target , boolean state){

    if (state) {
        //Enable Blue Light Filter
    } else {
        //Disable Blue Light Filter
    }

}

1 个答案:

答案 0 :(得分:0)

是的,您可以根据自己的应用偏好设置模式,例如下面的代码将设置夜间模式

val mode = AppPreference.getInt(AppPreference.PREF_KEY_THEME, Theme.MODE_DAY)
    when (mode) {
        Theme.MODE_DAY -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
        Theme.MODE_NIGHT -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
        Theme.MODE_AUTO -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO)
    }

您可以按照目录结构进行操作,如图所示。 enter image description here

从这些颜色值中,您可以为背景和字体提供不同的颜色。甚至晚上模式也可以有不同的样式。