91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android深色模式適配的方法是什么

發布時間:2023-04-07 11:37:50 來源:億速云 閱讀:102 作者:iii 欄目:開發技術

本篇內容主要講解“Android深色模式適配的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Android深色模式適配的方法是什么”吧!

Android深色模式適配的方法是什么

Android深色模式適配的方法是什么

Android 深色模式適配

深色主題背景

Android 10 (API 級別 29) 及更高版本中提供深色主題背景。深色主題背景具有諸多優勢:

  • 可大幅減少耗電量(具體取決于設備的屏幕技術)。

  • 為弱視以及對強光敏感的用戶提高可視性。

  • 讓所有人都可以在光線較暗的環境中更輕松地使用設備。

深色主題背景同時適用于 Android 系統界面和在設備上運行的應用。

在應用中支持深色主題背景

如要支持深色主題背景,必須將應用的主題背景(通常可在 res/values/styles.xml 中找到)設置為繼承 DayNight 主題背景:

<style name="AppTheme" parent="Theme.AppCompat.DayNight">

或者使用 MaterialComponent 的深色主題背景:

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">

這會將應用的主要主題背景與系統控制的夜間模式標記相關聯,并將應用的默認主題背景設置為深色主題背景(如果已啟用)。

主題背景和樣式

主題背景和樣式應避免使用旨在于淺色主題背景下使用的硬編碼顏色或圖標。應改用主題背景屬性(首選)或適合在夜間使用的資源。

以下是需要了解的兩個最重要的主題背景屬性:

  • ?android:attr/textColorPrimary 這是一種通用型文本顏色。它在淺色主題背景下接近于黑色,在深色主題背景下接近于白色。該顏色包含一個停用狀態。

  • ?attr/colorControlNormal 一種通用圖標顏色。該顏色包含一個停用狀態。

Force Dark

Android 10 提供 Force Dark 功能。此功能可讓開發者快速實現深色主題背景,而無需明確設置 DayNight 主題背景。

如果應用采用淺色主題背景,則 Force Dark 會分析應用的每個視圖,并在相應視圖在屏幕上顯示之前,自動應用深色主題背景。有些開發者會混合使用 Force Dark 和本機實現,以縮短實現深色主題背景所需的時間。

如果應用選擇啟用 Force Dark,可以在其主題背景中設置 android:forceDarkAllowed="true"。此屬性會在所有系統及 AndroidX 提供的淺色主題背景(例如 Theme.Material.Light)上設置。

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="android:colorPrimary">@color/colorPrimary</item>
        <item name="android:colorAccent">@color/colorAccent</item>
        <item name="android:background">@color/colorPrimary</item>
        <item name="windowNoTitle">true</item>
		<!-- 啟用 Force Dark -->
		<item name="android:forceDarkAllowed">true</item>
    </style>
</resources>

如果應用使用深色主題背景(例如Theme.Material),則系統不會應用 Force Dark。同樣,如果應用的主題背景繼承自 DayNight 主題背景,則系統不會應用 Force Dark,因為會自動切換主題背景。

在視圖上停用 Force Dark

您可以通過 android:forceDarkAllowed 布局屬性或 setForceDarkAllowed() 在特定視圖上控制 Force Dark。

Android 10以上

創建項目SDK選擇API29: Android 10以上,res目錄下會分別創建淺色和深色的主題樣式。

Android深色模式適配的方法是什么

其中values/themes.xml存放淺色模式主題,values-night/themes.xml存放深色模式主題。

如要切換主題背景,可以調用 AppCompatDelegate.setDefaultNightMode()

配置變更

當應用的主題背景發生更改(無論是通過系統設置還是 AppCompat)時,會觸發 uiMode 配置變更。這意味著系統會自動重新創建 Activity。

在某些情況下,可能希望應用處理配置變更。例如,可能希望延遲配置變更時間,因為設備正在播放視頻。

應用可以聲明,每個 Activity 都可以處理 uiMode 配置變更,以自行處理深色主題背景的實現:

<activity
    android:name=".MyActivity"
    android:configChanges="uiMode" />

當某個 Activity 聲明它會處理配置變更時,系統會在出現主題背景變更時調用該 Activity 的 onConfigurationChanged() 方法。

如要檢查當前采用的是哪種主題背景,應用可以運行如下代碼:

@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    int currentNightMode = newConfig.uiMode & Configuration.UI_MODE_NIGHT_MASK;
    switch (currentNightMode) {
        case Configuration.UI_MODE_NIGHT_NO:
            // Night mode is not active, we're using the light theme
            Log.i(TAG, "onConfigurationChanged: light");
            break;
        case Configuration.UI_MODE_NIGHT_YES:
            // Night mode is active, we're using dark theme
            Log.i(TAG, "onConfigurationChanged: dark");
            break;
        default:
            break;
    }
}

到此,相信大家對“Android深色模式適配的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

孟津县| 祥云县| 海安县| 刚察县| 汾西县| 牡丹江市| 济阳县| 恩施市| 广水市| 安达市| 元江| 湘潭县| 抚远县| 开封市| 子洲县| 磐安县| 浪卡子县| 信丰县| 玉树县| 巢湖市| 织金县| 乌鲁木齐县| 武清区| 遂宁市| 石泉县| 德昌县| 犍为县| 潜江市| 汪清县| 昌平区| 会宁县| 航空| 永德县| 绵阳市| 上杭县| 涞水县| 紫金县| 桓台县| 腾冲县| 丰顺县| 县级市|