Android系统应用---SystemUI之三:状态栏电池图标的显示和Android电池管理的探讨


电池图标显示

电池图标是SystemUI显示中不可缺少的一部分,它显示在SystemUI的电池和信号组合区域。


从布局来看,电池的显示属于status_bar.xml,包含了system_icons.xml布局

<includelayout="@layout/system_icons"/>

从这里可以看出,电池图标和信号图标属于同一个区域,所以这一块一般是两个布局,单卡和双卡,我们可以根据对应的机型选择msim_system_icons.xml或者system_icons.xml

电池图标的部分:

<com.android.systemui.BatteryMeterViewandroid:id="@+id/battery"

        android:layout_height="14.5dp"

        android:layout_width="9.5dp"

        android:layout_marginBottom="@dimen/battery_margin_bottom"

        android:visibility="gone"/>

 

电池电量百分比的部分:

<com.android.systemui.BatteryLevelTextViewandroid:id="@+id/battery_level_text"

        android:layout_height="match_parent"

        android:layout_width="wrap_content"

        android:gravity="center"

        android:layout_gravity="center_vertical"

        android:textColor="#ffffff"

        android:textSize="@dimen/battery_level_text_size"

        android:layout_marginStart="7dp"/>

 

电池图标具体的实现显示和更新分别在两个自定义View中实现:BatteryMeterView和BatteryLevelTextView

在原生的实现中: BatteryMeterView这个类来监听电池状态的变化的,是一个被BatteryController类所管理的ImageView。 BatteryController通过监听android.intent.action.BATTERY_CHANGED广播以从 BetteryService中获取电量信息,并根据电量信息画一个电池图标在画布上。原生的方法不需要去替换图片。

但有时候我们有需求去用图片来显示更新电池图标,最常见的比如有一套五格信号图标和充电图标,替换android原生的画出来的电池图标,我们可以将BatteryMeterView设置未GONE,写一个自定义的ImageView如下:

<com.android.systemui.BatteryIconViewandroid:id="@+id/battery_icons"

        android:layout_height="wrap_content"

        android:layout_width="wrap_content"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值