做网站能注册账号的,县门户网站建设整改,nodejs和wordpress,机械设备公司网站制作今天我们讲讲夜间模式的实现#xff0c;这篇文章的名字应该叫#xff1a;《Android Material Design系列之夜间模式》。在Android 5.0 之后#xff0c;实现夜间模式并非很难了#xff0c;支持的5.0库提供了非常简单的实现方式。不信#xff0c;你就往下看。首先说#xf…今天我们讲讲夜间模式的实现这篇文章的名字应该叫《Android Material Design系列之夜间模式》。在Android 5.0 之后实现夜间模式并非很难了支持的5.0库提供了非常简单的实现方式。不信你就往下看。首先说这种方式有它的局限性只能是两种模式夜间和白天的黑白两种模式由于其局限性所以实现就非常简单。讲之前咱先看看效果图吧。效果图image实现真的是非常简单就如下几步来一起来看看。实现依赖compile com.android.support:appcompat-v7:23.4.0配置对应的主题模式上篇文章我们补充了主题模式的讲解对于一些主题样式进行的相应的说明我也说过到这里我们就有可能用到。白天模式对于白天模式的主题样式和颜色我们就是按正常的来做就可以了。就是我们平常设置主题和颜色的地方设置就行。不同的是我们的主题style样式需要继承的是DayNight主题。如下color/colorPrimarycolor/colorPrimaryDarkcolor/colorAccentcolor/text_color_primaryfalsetrue重点是这句话parentTheme.AppCompat.DayNight夜间模式对于夜间模式的颜色和主题配置我们需要建立一个res下建立一个values-night文件夹里面放着夜间主题样式的color等资源。colors.xml配置如下#0a0a0a#000000#fc0404#FF2ECC71#51C332#ffffff#7f7f7f#0a0a0a#f305be#00ffff#000000需要注意和说明的是这里的name的属性的名字和我们正常情况下的也就是白天模式下的名字必须一样只不过是值不一样罢了颜色值白天和夜间的值你们自己配置就可以了。切换主题这一步就是改切换主题的调用了如下isNight sp.getBoolean(night, false);if (isNight) {AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);sp.edit().putBoolean(night, false).commit();} else {AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);sp.edit().putBoolean(night, true).commit();}recreate();我这里对模式进行了保存先判断现在处于什么模式然后点击的时候再根据现在的模式切换到另一种模式。重点是这两行代码//这是设置成非夜间模式AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);//这是设置成夜间模式AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);补充说明AppCompatDelegate.setDefaultNightMode(int mode);这里的mode有四个可选值分别是MODE_NIGHT_NO 使用亮色(light)主题不使用夜间模式MODE_NIGHT_YES使用暗色(dark)主题使用夜间模式MODE_NIGHT_AUTO根据当前时间自动切换 亮色(light)/暗色(dark)主题MODE_NIGHT_FOLLOW_SYSTEM(默认选项)设置为跟随系统通常为MODE_NIGHT_NO到这里关于夜间模式的切换就讲完了是不是非常简单对就是这么简单如果你还不知道这种方式那就赶紧去试试吧最近MD系列的阅读量真的是很低看来大家都不太喜欢如果这篇文章的阅读量低于1500就暂时先停一段MD系列的更新换别的文章更新给大家换换脑子写这个系列我也有点累了MD系列后面应该讲解转场动画和按压特效了。