セーフティ センター UI をカスタマイズする

セーフティ センター UI のコードは、safetycenter ディレクトリ packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/safetycenter/ にあります。 OEM オーバーレイ フォルダ内のランタイム リソース オーバーレイ(RRO)を使用して、セーフティ センター UI をカスタマイズします。RRO の詳細については、実行時にアプリのリソースの値を変更するをご覧ください。

セーフティ センターのテーマと色

セーフティ センターには、同じ UI 属性を共有する次の 4 つの主要テーマがあります。

  • セーフティ センター ライト
  • セーフティ センター ダーク
  • セーフティ センター クイック設定ライト
  • セーフティ センター クイック設定ダーク

セーフティ センターのテーマにはデフォルトの色が含まれます。主要な UI の色は、Android システムカラーから取得され、OEM による Android カラーの一般カスタマイズに自動的に適応できます。デフォルトでは、これらの色は、Android の Material You スタイルの一部として適応します。

セーフティ センターの色を変更するには、それぞれの値をオーバーライドします。

セーフティ センターの UI の色 属性名 リソース
背景 android:colorBackground @android:color/background_device_default_light
@android:color/primary_dark_device_default_settings
Surface colorSurface @color/sc_surface_light @color/sc_surface_dark
Surface バリアント colorSurfaceVariant @color/sc_surface_variant_light
@color/sc_surface_variant_dark
メインテキスト android:textColorPrimary @android:color/text_color_primary
サブテキスト android:textColorSecondary @android:color/text_color_secondary
アイコン android:textColorSecondary @android:color/text_color_secondary
リソース デフォルト値
@color/sc_surface_light L スター値が 98(知覚輝度)の @android:color/system_neutral1_500
@color/sc_surface_dark @android:color/system_neutral1_800
@color/sc_surface_variant_light @android:color/system_neutral2_100
@color/sc_surface_variant_dark @android:color/system_neutral1_700

問題の重大度の色

セーフティ センターは、次のように信号機の色のシステムを使用して、問題の重大度を知らせます。

  • 情報レベルの問題と OK ステータスの場合は緑色
  • 推奨事項の場合は黄色
  • 重大な問題の場合は赤色
  • 情報がない場合はグレー

デフォルトでは、これらの色は Google Material カラーパレットから取得されます。これらの基本の色を維持することをおすすめしますが、緑色、黄色および赤色パレットの異なるシェードを使用できます。

これらの色属性を使用して、アイコン、ボタン、スキャン、ステータス変更アニメーションなど、セーフティ センターの UI の重大の色が設定された項目の関連付けを行います。これらの色を変更すると、すべての要素の色が再設定されます。たとえば、@color/sc_status_info_{light,dark} を変更すると、スキャン中に静的ステータス画像と背景のアニメーションの両方で、背景色が変更されます。

セーフティ センターのクイック設定テーマで、デバイスがダークモードに設定されているかどうかに関係なく、ダークモード色が使用されます。

重大度 UI 要素 属性またはリソース名 デフォルトの色
情報(緑色) ステータス シールド ?attr/colorScStatusInfo ライト: 緑 600(#1e8e3e)
ダーク: 緑 500(#34a853)
ステータス シールド コンテナ ?attr/colorScStatusBackgroundInfo ライト: 緑 100(#ceead6)
colorSurfaceVariant
アイコン ?attr/colorScIconInfo 緑 500(#34a853)
メイン アクション ボタン @color/safety_center_button_info 緑 400(#5bb974)
セカンダリ アクション ボタン @color/safety_center_outline_button_info 緑 300(#81c995)
推奨事項(黄色) ステータス シールド ?attr/colorScStatusRecommend ライト: 黄 600(#f9ab00)
ダーク: 黄 500(#fbbc04)
ステータス シールド コンテナ ?attr/colorScStatusBackgroundRecommend ライト: 黄 100(#feefc3)
ダーク: colorSurfaceVariant
アイコン ?attr/colorScIconRecommend 黄 500(#fbbc04)
メイン アクション ボタン @color/safety_center_button_recommend 黄 400(#fcc934)
セカンダリ アクション ボタン @color/safety_center_outline_button_recommend 黄 300(#fdd663)
警告(赤色) ステータス シールド ?attr/colorScStatusWarn ライト: 赤 600(#d93025)
ダーク: 赤 500(#ea4335)
ステータス シールド コンテナ ?attr/colorScStatusBackgroundWarn ライト: 赤 100(#fad2cf)
ダーク: colorSurfaceVariant
アイコン ?attr/colorScIconWarn 赤 500(#ea4335)
メイン アクション ボタン @color/safety_center_button_warn 赤 400(#ee675c)
セカンダリ アクション ボタン @color/safety_center_outline_button_warn 赤 300(#f28b82)
推奨事項なし(グレー) アイコン ?attr/colorScIconNull グレー 600(#80868b)

Android 14 では、それぞれのテーマのカラー プロパティにオーバーレイが可能なカラーリソースが追加され、一部のデフォルト カラーが変更されました。

リソース名 Android 13 バッキング カラー Android 14 バッキング カラー Android 14 16 進数コード
@color/sc_status_info_light 緑 600 セマンティック グリーン #0E8435
@color/sc_status_recommend_light 黄 600 変更されていません
@color/sc_status_warn_light 赤 600 変更されていません
@color/sc_status_info_dark 緑 500 緑 400 #5BB974
@color/sc_status_recommend_dark 黄 500 黄 400 #FCC934
@color/sc_status_warn_dark 赤 500 赤 400 #EE675C
@color/sc_status_background_info_light 緑 100 変更されていません
@color/sc_status_background_recommend_light 黄 100 変更されていません
@color/sc_status_background_warn_light 赤 100 変更されていません
@color/sc_status_background_info_dark sc_surface_variant_dark 変更されていません
@color/sc_status_background_recommend_dark sc_surface_variant_dark 変更されていません
@color/sc_status_background_warn_dark sc_surface_variant_dark 変更されていません
@color/sc_icon_info_light 緑 500 変更されていません
@color/sc_icon_recommend_light 黄 500 変更されていません
@color/sc_icon_warn_light 赤 500 変更されていません
@color/sc_icon_null_light グレー 600 変更されていません
@color/sc_icon_info_dark 緑 500 緑 400
@color/sc_icon_recommend_dark 黄 500 黄 400
@color/sc_icon_warn_dark 赤 500 赤 400
@color/sc_icon_null_dark グレー 600 グレー 400 #BDC1C6
@color/sc_shield_accent_dark 使用できません グレー 900 #202124

UI の色

緑色の状態

緑色のシールド

#1E8E3E(緑/600)
ダークモード
#34A853(緑/500)
緑色のコンテナ

#CEEAD6(緑/100)
ダークモード
#474741
緑色の設定アイコン

#34A853(緑/500)
ダークモード
#34A853(緑/500)
スキャン ボタン

緑色のボタン
#5BB974(緑/400)
タイトル サブタイトル

#1B1C17(TextColorPrimary) #46483B(TextColorSecondary)

黄色の状態

黄色のシールド

#F9AB00(黄/600)
ダークモード
#FBBC04(黄/500)
黄色のコンテナ

#FEEFC3(黄/100)
ダークモード
#474741(黄/500)
黄色の設定アイコン

#FBBC04(黄/500)
ダークモード
#FBBC04(黄/500)
スキャン ボタン

黄色のボタン
#5BB974(黄/400)
タイトル サブタイトル

#1B1C17(TextColorPrimary) #46483B(TextColorSecondary)

赤色の状態

赤色のシールド

#D93025(赤/600)
ダークモード
#EA4335(赤/500)
赤色のコンテナ

#FAD2CF(赤/100)
ダークモード
#474741
赤色の設定アイコン

#EA4335(赤/500)
ダークモード
#EA4335(赤/500)
[アンインストール] ボタン

赤色のボタン
#EE675C(赤/400)
タイトル サブタイトル

#1B1C17(TextColorPrimary) #46483B(TextColorSecondary)

フォントとテキストの外観

セーフティ センターのフォントとテキストの外観は、Android におけるデフォルトのテキストの外観に基づいています。デバイス全体のスタイルに従ってすでに OEM によって設定されているフォント ファミリー、太さなどのプロパティへの変更を継承する必要があります。セーフティ センターのテキストの外観は、RRO を使用して直接オーバーライドできます。

セーフティ センターのテキストの外観 DeviceDefault ベース サイズ 太さ
TextAppearance.SafetyCenter.Headline TextAppearance.DeviceDefault.Headline android:textColorPrimary 変動 標準
TextAppearance.SafetyCenter.Headline.Status TextAppearance.DeviceDefault.Headline android:textColorPrimary 22 sp / 28 sp
TextAppearance.SafetyCenter.Headline.Issue TextAppearance.DeviceDefault.Headline android:textColorPrimary 18 sp / 24 sp
TextAppearance.SafetyCenter.Headline.Entry TextAppearance.DeviceDefault.Headline android:textColorPrimary 20 sp / 24 sp
TextAppearance.SafetyCenter.Medium TextAppearance.DeviceDefault.Medium 変動 14 sp / 20 sp または
16 sp / 24 sp
TextAppearance.SafetyCenter.Body TextAppearance.DeviceDefault.Small android:textColorSecondary 14 sp / 20 sp 標準

間隔とスタイル

セーフティ センターでは、パディングとマージンに一連のデフォルトのパディング値を汎用的に使用します。セーフティ センターの情報の密度を変更するには、間隔値をオーバーライドします。

リソース名 デフォルト値
@dimen/sc_spacing_xxxsmall 2 dp
@dimen/sc_spacing_xxsmall 4 dp
@dimen/sc_spacing_xsmall 8 dp
@dimen/sc_spacing_small 12 dp
@dimen/sc_spacing_medium 14 dp
@dimen/sc_spacing_large 16 dp
@dimen/sc_spacing_xlarge 18 dp
@dimen/sc_spacing_xxlarge 20 dp
@dimen/sc_spacing_xxxlarge 24 dp

セーフティ センター カードのコーナーの半径をカスタマイズできます。次のように、ボタンには 1 つのコーナーサイズの半径を使用し、セーフティ センターのカードには 3 つのコーナーサイズを使用します。

リソース名 デフォルト値
@dimen/sc_button_corner_radius 12 dp
@dimen/sc_card_corner_radius_large 28 dp
@dimen/sc_card_corner_radius_medium 20 dp
@dimen/sc_card_corner_radius_xsmall 4 dp

クイック設定タイル

セーフティ センターには、PermissionController モジュールで実装されたクイック設定タイルからアクセスできます。クイック設定タイルでは、オーバーレイ可能な要素が機能するように、セーフティ センターの画面から一部の UI コンポーネントを再利用します。