Android 夜间模式的设置以及需要注意的地方

在Android Support Library 23.2中更新了很多东西,其中包括AppCompat夜间白天主题。

要加入夜间主题也并不难。

  1. 在styles.xml里,主题继承Theme.AppCompat.DayNight.NoActionBar
  1. 在Activity里控件的点击事件里加入语句
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
recreate();
其中AppCompatDelegate有四个可选值MODE_NIGHT_YES表示夜间模式,MODE_NIGHT_NO表示白天模式,MODE_NIGHT_AUTO表示自动模式(会获取所处的地点的坐标计算现在时间,自动切换),MODE_NIGHT_FOLLOW_SYSTEM表示根据手机现在的时间切换(默认这种模式),跟随系统嘛。

3.点击按钮就能切换。

——————————————————————————

如果要在不同模式下加载不同的图,类似下面这样。注意头像背景。

Android 夜间模式的设置以及需要注意的地方_第1张图片

1.准备两种图片,一张白天一张夜晚,两种同名。
2.res下新建drawable-night文件夹,drawable里放白天的图片,drawable-night里放夜晚的图片
3.引用图片时@drawable/图片名称。

字体颜色用 android:textColor=”?android:attr/textColorPrimary”
或者在res下新建values-night文件夹,新建colors.xml,里面定义夜间模式下的字体颜色,名字与res/values/color.xml里白天模式下的字体颜色同名,设置字体颜色时@color/字体颜色。

要注意的是,调用主题切换时recreate();会销毁当前Activity再重建,要注意保存数据。而且这只是切换夜间主题,并不是更换皮肤。

其他方法:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0617/4357.html

你可能感兴趣的:(Android,Android小知识)