Android 夜間模式主題風格切換

2021-08-17 15:45:47 字數 3635 閱讀 1395

settings 模組

name="night_display_title" msgid="2626451512200357686">"夜間模式"

string>

name="night_display_text" msgid="1837277457033025056">"夜間模式會將您的螢幕色調調節為琥珀色,讓您在光線昏暗的環境下可以更舒適地檢視螢幕或閱讀文字,並可能有助於您入睡。"

string>

name="night_display_category_schedule" msgid="2044072617637348966">"排定時間"

string>

name="night_display_category_status" msgid="1952928783124400330">"狀態"

string>

name="night_display_auto_mode_title" msgid="8046314360381608455">"自動開啟"

string>

name="night_display_auto_mode_never" msgid="6723636142053240947">"永不"

string>

name="night_display_auto_mode_custom" msgid="6012300346981608242">"自定義時間安排"

string>

name="night_display_auto_mode_twilight" msgid="2123345097508167094">"日落到日出"

string>

name="night_display_start_time_title" msgid="8918016772613689584">"開始時間"

string>

name="night_display_end_time_title" msgid="8286061578083519350">"結束時間"

string>

name="night_display_summary_off" msgid="7009821232380000786">"關閉。id_1">%1$s"

string>

name="night_display_summary_off_auto_mode_never" msgid="2305501561697289620">"一律不自動開啟。"

string>

name="night_display_summary_off_auto_mode_custom" msgid="1548073080728058384">"將在id_1">%1$s自動開啟。"

string>

name="night_display_summary_off_auto_mode_twilight" msgid="2737328390752018845">"將在日落時自動開啟。"

string>

name="night_display_summary_on" msgid="6626224414971753417">"開啟。id_1">%1$s"

string>

name="night_display_summary_on_auto_mode_never" msgid="5217396859715040056">"一律不自動關閉。"

string>

name="night_display_summary_on_auto_mode_custom" msgid="887702685252504739">"將在id_1">%1$s自動關閉。"

string>

name="night_display_summary_on_auto_mode_twilight" msgid="8574989770628425398">"將在日出時自動關閉。"

string>

settings 模組 display_settings.xml,設定入口

"night_display"
android:title="@string/night_display_title"

android:fragment="com.android.settings.display.nightdisplaysettings"

android:widgetlayout="@null"

settings:keywords="@string/keywords_display_night_display" />

uimodemanager.setnightmode(value);進行夜間模式和白天模式的切換

package com.android.settings;
public

class

displaysettings

extends

settingspreferencefragment

implements

preference.onpreferencechangelistener, indexable

...if (preference == mnightmodepreference) catch (numberformatexception e)

}1.原理

呼叫uimodemanager夜間模式介面 + value-night資源檔案

2.實現邏輯

public
class

mainactivity

extends

activity

public

void

night(view view)

public

void

day(view view) 3.布局檔案

android:onclick="night"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="夜間模式" />

android:onclick="day"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="白天模式" />

4.夜間模式和白天模式的資源檔案

values-night

<?xml version="1.0" encoding="utf-8"?>
name="colorprimary">#3b5125color>

name="colorprimarydark">#30e333color>

name="coloraccent">#ff4081color>

name="mybackground">#000000color>

resources>5.執行結果

Android 夜間模式

color colorprimary color colorprimarydark color coloraccent 新增value night路徑,設定夜間模式下的color檔案。正常的color檔案 008577 00574b d81b60 24256e 夜間模式下的color檔案 00857...

android 夜間模式

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

android夜間模式實現

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