Android 实现夜间模式

EDVRosie 9年前

来自: http://blog.csdn.net//never_cxb/article/details/50620539


方法1

建一个 value-night 的文件夹,colors.xml如下:

<resources>      <color name="colorPrimary">#7D4112</color>      <color name="colorPrimaryDark">#7D4112</color>      <color name="colorAccent">#1F1F1F</color>  </resources>
@Override  public boolean onNavigationItemSelected(MenuItem menuItem) {        int id = menuItem.getItemId();        switch (id) {          case R.id.nav_setting:              Toast.makeText(this, "夜间模式", Toast.LENGTH_LONG).show();              if (isNightMode) {                  uiManager.enableCarMode(0);                  uiManager.setNightMode(UiModeManager.MODE_NIGHT_YES);                  isNightMode = !isNightMode;              } else {                  uiManager.disableCarMode(0);                  uiManager.setNightMode(UiModeManager.MODE_NIGHT_NO);                  isNightMode = !isNightMode;              }              return true;          default:              return true;      }  }

统计结果1
但是这种方法会开启车载模式
统计结果1

在笔者的测试机(红米1s)中,这种方法会先退出应用,再启动应用已经是夜间模式

注意点

CardView 的背景色是app:cardBackgroundColor="?attr/windowBackground"设置,不是普通的android:background