自定义安全中心界面

安全中心界面的代码位于 safetycenter 目录 packages/modules/Permission/PermissionController/src/com/android/permissioncontroller/safetycenter/ 中。使用 OEM 叠加层文件夹中的运行时资源叠加层 (RRO) 自定义安全中心界面。如需了解 RRO,请参阅在运行时更改应用资源的值

安全中心主题和颜色

安全中心提供了 4 个具有相同界面属性的基本主题:

  • 安全中心灯
  • 安全中心(深色)
  • 安全中心快捷设置指示灯
  • 安全中心快捷设置(深色)

安全中心主题包含默认颜色。界面的基本颜色提取自 Android 系统颜色,可以根据 OEM 的 Android 颜色常规自定义设置自动调整。默认情况下,这些颜色会作为 Android 版 Material You 样式设置的一部分进行调整。

您可以通过替换安全中心颜色值来更改安全中心颜色。

安全中心界面颜色 属性名称 资源
背景 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 @android:color/system_neutral1_500,颜色亮度值为 98(感知亮度)
@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

问题严重程度颜色

安全中心通过交通灯颜色系统的方式来表示问题的严重程度:

  • 绿色表示信息相关问题和状态正常
  • 黄色表示建议
  • 红色表示严重问题
  • 灰色表示信息缺失

默认情况下,这些颜色来自 Google Material 调色板。我们建议您使用这几种基本颜色,但您可以选用绿色、黄色和红色调色板的不同色调。

这些颜色属性用于在安全中心界面中关联严重程度颜色项目,包括图标、按钮以及扫描和状态变化动画。修改这些颜色会导致系统重新为所有元素着色。例如,修改 @color/sc_status_info_{light,dark} 会更改扫描过程中静态状态图片和背景动画的背景颜色。

无论设备是否设置为深色模式,安全中心快捷设置主题都会使用深色模式颜色。

严重程度 界面元素 属性或资源名称 默认颜色
信息(绿色) 状态盾牌 ?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 十六进制代码
@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

界面颜色

绿色状态

绿色盾牌

#1E8E3E(绿色/600)
深色主题
#34A853(绿色/500)
绿色容器

#CEEAD6(绿色/100)
深色主题
#474741
绿色设置图标

#34A853(绿色/500)
深色主题
#34A853(绿色/500)
扫描按钮

绿色按钮
#5BB974(绿色/400)
标题 副标题

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

黄色状态

Yellow Shield

#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

您可以自定义安全中心卡片的圆角半径。需要为按钮自定义一个圆角半径大小,为安全中心卡片定义三个圆角半径大小:

资源名称 默认值
@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 模块中实现的“快捷设置”功能块访问安全中心。“快捷设置”功能块重复使用安全中心屏幕中的某些界面组件,因此可叠加项可以正常运行: