Android 夜間模式

2021-09-10 17:52:40 字數 1445 閱讀 2721

@color/colorprimary

@color/colorprimarydark

@color/coloraccent

新增value-night路徑,設定夜間模式下的color檔案。

正常的color檔案: 

#008577

#00574b

#d81b60

#24256e

夜間模式下的color檔案:

#008577

#00574b

#d81b60

#ffffff

接著layout檔案中textview設定文字顏色為text_color;

獲取當前mode的值:

int currentmode=getresources().getconfiguration().uimode& configuration.ui_mode_night_mask;
根據currentmode判斷是否是夜間模式;

其中mode主要有四種:

public static final int mode_night_no = 1; //亮色(light)主題,不使用夜間模式

public static final int mode_night_yes = 2;//暗色(dark)主題,使用夜間模式

public static final int mode_night_auto = 0;//根據當前時間自動切換 亮色(light)/暗色(dark)主題

public static final int mode_night_follow_system = -1;//設定為跟隨系統

這裡只判斷是否是夜間:

if (currentmode!=configuration.ui_mode_night_yes)else 

recreate();

記得一定要新增recreat()方法。。。

可以執行看下效果啦如圖:

但是這麼寫會有個問題。recreat()方法呼叫會閃屏。。

這裡有倆方案,自己選擇下:

1:在style中新增

@android:style/animation.toast
2:不使用recreat()方法,重新startactivity並新增跳轉動畫。

android 夜間模式

自7.0開始谷歌提供了夜間模式,用於將螢幕色彩調成較為柔和的琥珀色,但因該模式需要硬體的支援,所以不是所有裝置上都可用,也不常見。夜間模式的開啟和關閉,相關方法 的呼叫,可完全參考設定中的夜間模式,config中預設配置如下,從配置中可見,夜間模式是否能夠生效,主要依賴硬體 是否擁有hwc引入功能,...

android夜間模式實現

我們來 一下夜間模式。問 android夜間模式的實現有幾種?答 有好多種。怎麼用這個方法呢?接下來怎麼去自定義自己的日夜間模式呢?方法與之前的nightmodehelper類似,建立帶 night字尾的資料夾 比如 values night 然後新增你的資源檔案,資源檔案需要相同的命名 比如 co...

Android 夜間模式changeskin小結

author vivian8725118 csdn 近期公司的專案在做夜間模式,使用了鴻洋的changeskin。乙個很好用的library。在這裡總結一下使用過程中遇到的各種問題和解決的方法。dependencies或者直接加入依賴 dependenciesps 之前是加入了依賴,後來為了支援自己...