Android SystemUI相关定制(一)

一、顶部状态栏

1、隐藏右上角状态栏导航电量图标

SystemUI/src/com/android/systemui/BatteryMeterView.java

重写setVisibility()方法达到隐藏电量图标的效果

Android SystemUI相关定制(一)_第1张图片

 -------------------------------------------------------------------------------------------------------------------------------

2、隐藏下拉菜单中图标

  如图:隐藏电池图标

SystemUI/res/values/config.xml

Android SystemUI相关定制(一)_第2张图片

  -------------------------------------------------------------------------------------------------------------------------------

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方法,

Android SystemUI相关定制(一)_第3张图片

 


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