Android ダークモード適応、モニタリング

1. 適応する最も簡単な方法は、ForceDark を使用することです

この方法を使用できるのは、明るいテーマを使用するアプリのみです。アプリが暗いテーマを使用している場合、Force Dark は有効になりません。

android:forceDarkAllowed は Android 10 システムからのみ利用可能です。すべての res ディレクトリにvalues-v29 フォルダーを作成し、このフォルダー内にstyles.xmlファイルを作成し、前に適用されたstyles.xml内の属性をvalues-にコピーします。 v29/styles.xml の最後に追加します

<item name="android:forceDarkAllowed">true</item>

2. 件名を次のように指定します 

親="Theme.AppCompat.DayNight.NoActionBar"

この種のテーマは、通常の状況では引き続きライト テーマを使用し、ダーク モードに切り替えるとダーク テーマを使用します。

このように使用すると、再度調整する必要がある色の詳細がまだたくさんあります

ダークモードの色に適応するためにres/の下にvalues-night/colors.xmlを作成します。

res の下にdrawable-nightを作成し、ダークモードを設定するための画像リソースなどを配置します。

3. モニターシステムのダークモード切り替え

AndroidManifest.xml の対応する <activity> に追加します。

android:configChanges="uiMode"

次に、アクティビティの onConfigurationChanged で、ダーク モードの切り替えを監視できます。

@Override 
public void onConfigurationChanged(@NonNull Configuration newConfig) {
  
  
}

/** 
 * ダークモードかどうかを判断します
 * @param context 
 * @return 
 */ 
public static boolean isNightMode(Context context) { 
    try { 
        return (context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES; 
    } catch (例外例) { 

    } 
    return false; 
}

おすすめ

転載: blog.csdn.net/chongchi_wxcc/article/details/127186685