如果你也想自学Android,可以关注我。我会把踩过的坑分享给你,相关的教程以及配套的讲解 ,分享给大家:
https://edu.51cto.com/lesson/1011461.html
前一阵需要做一个需求,在手机里的设置–电池那一页面加一个电池电量百分比显示的功能,就是一个switch,开启的时候需要百分比显示,关闭的时候就不显示了,虽然功能不是很大,但是毕竟是自己实现的,就想做做笔记~
首先得定位,这个得在framework/package/SystemUI下面进行修改。
include下面的Textview就是我加的。而这个Textview在代码中不是写死的,是用View.VISIBLE和View.GONE来控制的,这得看用户的选择。
然后就想着在电池那一页添加一栏电池电量百分比显示这么个SwitchPreference,定位代码到package/app/Settings中有一个类,PowerUsageExts.java,这个类就是控制电池这一页上的所有功能,在他的构造方法里,添加一个SwitchPreference。
然后这个类中有专门SwitchPreference的点击事件的方法onPowerUsageExtItemsClick,在这个方法中判断点击的Key去事件功能
然后在Setting里的修改到此结束了,跑到SystemUI下面,找到PhoneStatusBar.java类,在这里findViewbyid咱的Textview,
然后有一个监听电池电量的方法,mBatteryController.addStateChangedCallback(new BatteryStateChangeCallback() { 在这里有一个重写的监听电池电量的方法
public void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) {
然后就在这个方法中写好计算电池电量的两行代码
然后在这个类中还有一个广播接收器private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { 我们在这里去监听刚刚在Setting里点击之后发过来的广播
好了,这样就已经大功告成了,但是,当我打开百分比显示的时候,在锁屏状态下,电池电量百分比根本就没有出来,然后我就想到了一个类,KeyguardStatusBarView.java,不出我所料,在这个类中也有在控制这个电量百分比,之前没有这个功能的时候,只有插上充电器的时候锁屏界面的状态栏上才会出现这个百分比,然后我就在这个类中修改了一点,
我就加了两行,第一行是从上一个类中已经存储好的SharedPreference中读取已经选择的开启或者关闭,然后再去进行显示或者隐藏。我添加的下面几行就是控制插上充电器之后显示百分比的地方。
好了,就这样全部都做好了。
如果你也想自学Android,可以关注我。我会把踩过的坑分享给你,相关的教程以及配套的讲解 ,分享给大家:
https://edu.51cto.com/lesson/1011461.html
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
相关文章