DayNight Mode实现Android夜间模式!
期末设计开发了一个小说阅读器,里面涉及到白天/夜间模式的切换,特拿出来试验,验证DayNight Mode标准
利用DayNight Mode标准实现Android白天/夜间模式切换,主要用到控制器UiModeManager。
UiModeManager主要用来进行模式切换。它是Android系统SDK本来就提供的模式切换系统。利用该控制器外加一套白天/夜间模式的资源(UiModeManager会根事件自动在两个模式之间切换),即可实现白天/夜间模式的切换。
资源细分
首先我们看一看一个界面需要控制哪些颜色:
而除了上述基本需要控制的窗口颜色外,布局中受影响的还会有一些文本和图像。一般的,白天/夜间模式涉及到的显示状态的切换最基本改变影响就是这些文本、icon图标、整体的背景颜色等。
首先我们在colors.xml中设置好这些颜色,代码如下:
白天模式:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 文本颜色-->
<color name="text">@android:color/black</color>
<!-- 背景颜色-->
<color name="background">@android:color/white</color>
<!-- 窗口颜色-->
<color name="colorPrimary">#FF9600</color>
<color name="colorPrimaryDark">#FF9600</color>
<color name="colorAccent">#FF4081</color>
</resources>
夜间模式:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 文本颜色-->