【SystemUI】修改下拉状态栏颜色

需要改变下拉状态栏的背景色。
关于这方面的代码路径 frameworks/base/packages/SystemUI中

通过androidSDK自带的工具uiautomatorviewer 可以获得控件的id
【SystemUI】修改下拉状态栏颜色_第1张图片
顶部状态栏的id 为header
在frameworks/base/packages/SystemUI 中寻找id为header的控件

在res/layout文件夹下的status_bar_expanded_header.xml文件中有定义

自定义的继承于RelativeLayout的控件,background为drawable文件夹下的
notification_header_bg,该文件实现的是水波纹的效果,根节点为ripple

Color为长按时水波纹的颜色
Item中的system_secondary_color是单独的颜色,

【SystemUI】修改下拉状态栏颜色_第2张图片
颜色与原本颜色相符,因此修改system_second_color的颜色即可改变顶部状态栏的颜色,且当ripple下没有子节点时,会变成透明,而点击长按时会出现color中定义的颜色

将需要定义的颜色进行修改
这里写图片描述
【SystemUI】修改下拉状态栏颜色_第3张图片
顶部颜色进行了修改

下方的快速设置区域
Id为 quick_settings_container
在res/layout/qs_panel.xml文件中有定义
【SystemUI】修改下拉状态栏颜色_第4张图片
这里讲QSPanel的颜色设为了全透明,因此显示的就是QSContainer的背景颜色
查看qs_background_primary
【SystemUI】修改下拉状态栏颜色_第5张图片
Inset为嵌入图像资源 insetTop为图像与上方的距离
Shape中定义了颜色与四个角的度数
这里写图片描述
对system_primary_color 进行修改
E5代表透明度 通过十六进制计算得出90%的透明度的值,ff为不透明
修改结果对比如图

你可能感兴趣的:(android,SystemUI)