添加并客制化Statusbar中图标显示顺序

1.在android/frameworks/base/core/res/res/values/symbols.xml声明图标字符

<java-symbol type="string" name="status_bar_xxx" />

2.在android/frameworks/base/core/res/res/values/config.xml指定显示顺序

<string-array name="config_statusBarIcons">

  <item><xliff:g id="id">@string/status_bar_alarm_clock</xliff:g></item>
  <item><xliff:g id="id">@string/status_bar_rotate</xliff:g></item>

  ...

 + <item><xliff:g id="id">@string/status_bar_xxx</xliff:g></item>

  <item><xliff:g id="id">@string/status_bar_airplane</xliff:g></item>

  <item><xliff:g id="id">@string/status_bar_battery</xliff:g></item>

</string-array>

+ <string translatable="false" name="status_bar_xxx">xxx</string>

字符串config_statusBarIcons中的顺序即Statusbar中显示顺序,该显示顺序可通过statusbar加载流程看出。

3.android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java

在构造函数中

public class StatusBarIconControllerImpl extends StatusBarIconList implements Tunable,
        ConfigurationListener, Dumpable, CommandQueue.Callbacks, StatusBarIconController {

public StatusBarIconControllerImpl(Context context) {
        super(context.getResources().getStringArray(
                com.android.internal.R.array.config_statusBarIcons));

将整个数组值传递给StatusBarIconList的构造函数

4.android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconList.java

public StatusBarIconList(String[] slots) {
        final int N = slots.length;
        for (int i=0; i < N; i++) {
            mSlots.add(new Slot(slots[i], null));
        }
    }

在StatusBarIconList中,会将数组拆分,一个一个按顺序添加。因此,只要将config_statusBarIcons顺序调整,即可订制Statusbar中图标显示顺序。

具体的图标加载,可以参考

图标加载流程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值