一、顶部状态栏
1、隐藏右上角状态栏导航电量图标
SystemUI/src/com/android/systemui/BatteryMeterView.java
重写setVisibility()方法达到隐藏电量图标的效果
-------------------------------------------------------------------------------------------------------------------------------
2、隐藏下拉菜单中图标
如图:隐藏电池图标
SystemUI/res/values/config.xml
-------------------------------------------------------------------------------------------------------------------------------
3、修改下拉框快捷功能栏列数
修改quick_settings_num_columns数值
<integer name="quick_settings_num_columns">6integer>
路径为:Framework/base/package/SystemUI/res/values-land/dimes.xml Framework/base/package/SystemUI/res/values-w550dp-land/dimes.xml
-------------------------------------------------------------------------------------------------------------------------------
4、隐藏下拉框快捷功能
在config.xml中修改quick_settings_tiles_default
Framework/base/package/SystemUI/res/value/config.xml
注意:quick_settings_tiles_default值减少时,有缓存影响,需要重置设备
-------------------------------------------------------------------------------------------------------------------------------
5、下拉框添加快捷开关
(1)在config.xml中的quick_settings_tiles_default(有顺序)和quick_settings_tiles_stock(无顺序)添加新选项
frameworks\base\packages\SystemUI\res\values\config.xml
(2)新建一个自己的Tile
在O的Settings中添加新项时,需要重写getMetricsCategory
@Override public int getMetricsCategory() { return MetricsEvent.LED_BRIGHTNESS_LEVEL; }
这个LED_BRIGHTNESS_LEVEL的定义在frameworks\base\proto\src\metrics_constants.proto
需要往后翻到预留的位置添加新的ID LED_BRIGHTNESS_LEVEL = 1146;
(3) getMetricsCategory()一定要添加一个返回字段,否则当你把QS全部下滑会crash。MetricsEvent在
frameworks\base\proto\src\metrics_constants.proto中定义的字段,编译完成后会在这生成
out\target\common\obj\JAVA_LIBRARIES\framework-protos_intermediates\src\proto\src\com\android\internal\logging\MetricsProto.java(不要修改这个文件,编译后会自动修改,把你添加的字段自动加上)。如果编译失败,会提示你删除一些东西什么的,直接把out\target\common\obj目录全部删除再编译,或者clean后build。添加完成后记得在引用的地方要导入com.android.internal.logging.MetricsProto.MetricsEvent;
(4)引用自己的Tile
frameworks\base\packages\SystemUI\src\com\android\systemui\qs\tileimpl\QSFactoryImpl.java会加载所有的Tile,我们只需要把我们自定义的TestTile添加进去就可以了。
例如:else if (tileSpec.equals("moresettings")) return new MoreSettingsTile(mHost);
注意:"moresettings"一定要和第一步中添加的名称一样
-------------------------------------------------------------------------------------------------------------------------------
5、去掉下拉框收缩界面
frameworks\base\packages\SystemUI\src\com\android\systemui\qs\QSFragment.java中的setQsExpansion方法,