Androidのスプラッシュスクリーンで簡単に背景色をダークモード対応させる方法
Android Studioで、resディレクトリを右クリックして、New -> Android Resource Directoryを選択する。
Directory Nameにvalues-nightを入力して、OKをクリックする。
values-nightディレクトリが表示されない場合は、Projectビューに切り替える。
values-nightディレクトリを見つけたら、右クリックして、New -> Values Resource Fileを選択する。
入力フィールドにcolorsを入力する。
作成されたvalues-night/colors.xmlにcolor要素を追加する。nameにはactivity_backroundを指定する。値は#1f1f1f。
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="activity_background">#1f1f1f</color> </resources>
もともと存在していたvalues/colors.xmlにはライトモードに対応するactivity_backroundカラーを追加する。
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="activity_background">#FFFFFF</color> ... </resources>
AndroidManifest.xmlを開いて、application要素のandroid:themeに設定されているテーマを確認する。
<application ... android:theme="@style/Theme.TrainingNoteApplication" >
該当のテーマが定義されているtheme.xmlを開いて、アプリケーション全体の背景色を変更するために次の要素を追加する。
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.TrainingNoteApplication" parent="android:Theme.Material.Light.NoActionBar"> <item name="android:windowBackground">@color/activity_background</item> </style> </resources>
これでシステムのダークモードの設定に合わせて、スプラッシュスクリーン表示時の背景色が自動的に変更される。
参考
Splash screens | Android Developers
スタイルとテーマ | Android デベロッパー | Android Developers
DarkTheme対応のリソース設計 - DMM inside
Androidでダークテーマを試す. ダークテーマの設定方法について紹介します。 | by Keisuke Kawajiri | URL Memo | Medium