简单实现夜间模式渐变

博文出处: Day Night Mode,我的博客

话不多说,先上效果图!

Twitter 实现夜间模式
我的实现
我的实现3

准备好你的铲铲

  • Android Support Library v7 24.2.0
    
    
//@anim/fade_in

    


//@anim/fade_out

    

一点解释

  1. windowAnimation 在这里的作用是模拟 startActivity 的 OverridingPendingTransition, 搭配 recreate 就不会出现闪现黑屏的情况了。
  2. 在style 文件里为windowAnimation 创建一个新的style,设定渐入动画和渐出动画。
  3. AppCompatDelegate.setDefaultNightMode 是support 包里的方法,我们只要简单设置他的mode 搭配recreate就可以变换夜间模式。
MODE_NIGHT_NO - 日间模式
MODE_NIGHT_YES - 夜间模式
MODE_NIGHT_AUTO - 根据当前时间自动切换 亮色(light)/暗色(dark)主题
MODE_NIGHT_FOLLOW_SYSTEM(默认选项). 设置为跟随系统,通常为 MODE_NIGHT_NO;貌似有些手机设定可以开启夜间模式

备注

  • 这个渐变效果不支持API 24 Nougat
  • API 24 recreate 不会闪现黑屏

我把这个效果实现在我的项目里了,有兴趣的童鞋可以来看一看星一星!谢谢!

https://github.com/chkfung/MeizhiGank

Reference

  1. https://kingideayou.github.io/2016/03/07/appcompat_23.2_day_night/

你可能感兴趣的:(简单实现夜间模式渐变)