自定义状态栏系统图标

状态栏是 Android 系统界面的一个组件,用于持续向用户显示重要信息。本文介绍了如何自定义状态栏系统图标。如需详细了解如何使资源叠加,请参阅 source.android.com 上的自定义系统界面

状态栏

图 1. 状态栏。

特定图标的叠加

状态栏中所显示项的大多数资源都位于以下目录中:

/platform/frameworks/base/packages/SystemUI/res/drawable

单个图标

用途 资源 含义
闹钟 stat_sys_alarm 已设置闹钟。
stat_sys_alarm_dim 设备处于 zen 模式。
投屏 stat_sys_cast 设备正投射到另一台设备上。
蓝牙 stat_sys_data_bluetooth 蓝牙已启用。
stat_sys_data_bluetooth_connected 至少连接了一台蓝牙设备。
流量节省程序 stat_sys_data_saver 设备处于“流量节省程序”模式。
勿扰 stat_sys_dnd 设备处于勿扰模式。
以太网 stat_sys_ethernet 设备已连接到以太网。
stat_sys_ethernet_fully
耳机 stat_sys_headset 耳机已连接。
stat_sys_headset_mic 连接的耳机带有麦克风。
热点 stat_sys_hotspot 热点已启用。
stat_sys_managed_profile_status 正管理相应配置文件。
振铃器 stat_sys_ringer_silent 设备处于静音模式。
stat_sys_ringer_vibrate 设备处于仅振动模式。
旋转 stat_sys_rotate_landscape 屏幕处于横屏模式。
stat_sys_rotate_portrait 屏幕处于竖屏模式。
传感器已关闭 stat_sys_sensors_off
电传打字机模式 stat_sys_tty_mode
VPN 图标 stat_sys_vpn_ic 在设备已启用 VPN 和 VPN 版本带有品牌标志时显示。
stat_sys_branded_vpn
位置信息 perm_group_location 在定位请求处于活动状态时显示。
位于 platform/frameworks/base/core/res/res/drawable 下。

组合图标

来电和去电图标指示器 Wi-Fi 和移动网络下的来电和去电 activity 图标完全相同,且与这两种图标一同显示。
ic_activity_down 指示来电 activity。
ic_activity_up 指示去电 activity。
Wi-Fi ic_wifi_signal_0
ic_wifi_signal_1
ic_wifi_signal_2
ic_wifi_signal_3
ic_wifi_signal_4
Wi-Fi 图标在状态栏中显示。
实际显示的图标因信号强度而异。
ic_wifi_signal_0 表示信号最弱,ic_wifi_signal_4 则表示信号最强。
移动网络 移动网络图标的位置固定不变,因此只能显示以下图标之一,因手机的信号强度而异。
stat_sys_airplane_mode 飞行模式图标。
stat_sys_roaming 漫游模式图标。
ic_lte_mobiledata LTE 图标。
ic_lte_plus_mobiledata LTE+ 图标。
ic_g_mobiledata GPRS 图标。
ic_e_mobiledata Edge 图标。
ic_h_mobiledata HSDPA 图标。
ic_h_plus_mobiledata HSPA+ 图标。
ic_3g_mobiledata 3G 图标。
ic_4g_mobiledata 4G 图标。
ic_4g_plus_mobiledata 4G+ 图标。
ic_5g_e_mobiledata 5G Evolution 图标。
ic_5g_mobiledata 5G 图标。
ic_5g_plus_mobiledata 5G+ 图标。
ic_1x_mobiledata 1X 图标。

特殊图标

以下配置决定着是否显示某些图标:

说明
config_showMin3G 将其设置为 true 时,数据连接级别的最低级别将显示为 3G。否则显示其他图标,例如 1x。
config_alwaysUseCdmaRssi 如果信号强度指示器应始终显示 CDMA 信号强度,则将其设置为 true,采用 Evolution-Data Optimized (EVDO) 时也是如此。
config_hspa_data_distinguishable 如果需要将 HSPA 数据网络图标与通用移动通讯系统 (UMTS) 数据网络图标区分开,则将其设置为 true
config_inflateSignalStrength 将其设置为 true 时可人为地将所有信号强度解读为比实际信号强度高一格。

运营商配置服务也会通过自己的配置来决定是否显示某些图标。这些值均与特定的 SIM 卡相关联,且原始设备制造商 (OEM) 无法替换这些值。例如:

说明
KEY_ALWAYS_SHOW_DATA_RAT_ICON_BOOL 始终显示数据网络图标。
KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL 将 LTE 显示为 4G。
KEY_SHOW_4G_FOR_3G_DATA_ICON_BOOL 将 3G 显示 4G。
KEY_HIDE_LTE_PLUS_DATA_ICON_BOOL 不显示 LTE+。

配置图标

以下通用配置变量适用于所有状态栏系统图标:

说明
status_bar_system_icon_size 更改系统图标的大小。
status_bar_system_icon_spacing 确定系统图标之间的间距。
config_statusBarIconBlacklist 指明哪些系统图标绝不应在状态栏中显示。
config_statusBarIcons 确定某个配置的图标的显示顺序。