Android 實現夜間模式

方法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

發佈了198 篇原創文章 · 獲贊 179 · 訪問量 91萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章