Android 深色主题(夜间模式) 的一次小记

1,383 阅读1分钟

实现方式一 Google DayNight

  1. 依赖:项目中有 appcompat 相关依赖即可。
    例如 implementation 'androidx.appcompat:appcompat:1.0.2'
  2. 修改主题
    将主题修改为Theme.AppCompat.DayNight或者它的子主题。
  3. 增加 values-night 文件加,存放对应夜间模式的 color.xml文件。(颜色名称要一致)
  4. 增加 drawable-night-hdpi或者是 mipmap-night-hdpi 文件夹,xhdpi,xxhdpi如果有都要建立。把对应页面模式的图标放进去。(图标名称要一致)
  5. activity 要继承自 AppCompatActivity。
  6. 切换方式一(重建Activity生效)
    • getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES); 切换夜间
    • getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO); 切换白天
  7. 切换方式二(activity建立时生效)
    •  AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
       recreate(); //切换白天
      
    •  AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
       recreate(); //切换夜间