BatteryController.java
其中已经有了一个成员mIconViews,电量显示的mLabelViews已经存在,但没有使用,这里可以参考系统都在哪些地方增加了mIconViews,照猫画虎,也把mLabelViews加上去即可。
同时修改BatteryController.java中的onReceive:
代码段:
boolean batteryPercent=false;//这里可以做成在Setting中设置的开关
if (batteryPercent) {
N = mLabelViews.size();
for (int i=0; i<N; i++) {
TextView v = mLabelViews.get(i);
v.setText(Integer.toString(level)+"%");
}
}
这里主要是要在PhoneStatusBar.java中增加:
mBatteryController.addIconView((ImageView)mStatusBarView.findViewById(R.id.battery));
mBatteryController.addLabelView((TextView)mStatusBarView.findViewById(R.id.battery_text));
还有很多其它地方,我不确定是否与此功能有关系,但当时都改了。建议使用SI查找所有调用addIconView,观察一下如果有对mBatteryController的addIconView,就同时增加一个addLabelView。
上面这些都改完后需要修改res/layout下对应的布局文件,在statusbar里面增加显示电量百分比需要的Textview:
在res/layout目录下搜索“+id/battery”关键字,在其前面增加下面的红色部分代码:
<TextView
android:id="@+id/battery_text"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
/>
<ImageView
android:id="@+id/battery"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingStart="4dip"
/>
比如如果你的是双卡版本,则应该是文件msim_status_bar.xml
大功告成。
如果是Android4.4源码本身就已经支持了,就用不着这么劳神了。