重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如果希望在状态栏显示剩余电量百分比,可以通过下面方法进行设置:
目前创新互联建站已为上千家的企业提供了网站建设、域名、雅安服务器托管、网站托管运营、企业网站设计、新疆网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
EMUI 3.1:进入“设置电池”,勾选“显示剩余电量百分比”;
EMUI 4.0:在“设置通知栏和状态栏”,勾选“显示剩余电量百分比”,或者在“设置高级设置电池管理”,打开“显示剩余电量百分比”。
如果不希望显示剩余电量百分比,可以按照以上操作方法关闭。
我的Android版本是5.1。
我是这样去实现的:
首先-----》我在priv-app/Settings里面的battery里面加一条SwitchPreference,这个是是否显示的开关。
通过这个开关将值写入数据库中。然后SystemUI就可以取到这个值控制是否显示
这个battery控制界面是PowerUsageSummary,它是一个PreferenceFragment。
它的界面的绘制是通过好几种途径,最后都通过addPreference加到一个PreferenceGroup里面了。
然后-----》我需要改frameworks层的东西,
1在android.provider.Settings类的System下面加一个String类型的名字,
System对应的是数据库的名字
例如BATTERY_POWER_PERCENTAGE
2要修改SettingsProvider这个应用,它是Settings的数据库管理应用,
主要提供了一系列操作数据库的方法,先在defaults.xml里面添加一个integer变量,
给他一个初始值0,0对应不显示,1对应显示。然后找打DatabaseHelper这个类,
它是一个SQLiteOpenHelper,它封装了一系列操作sqlite数据库的方法,
我们在loadSystemSettings方法里面可以将直接在defaults.xml定义的值写入数据库。
3我们要修改SystemUI这个应用,看过源码才知道,其实状态栏是分3个显示的,
锁屏的时候是一个,对应的类是KeyguardStatusBarView,它是一个RelativeLayout,
对应的布局是Keyguard_status_bar.xml
进入后是一个,对应的类是PhoneStatusBar,它是BaseStatusBar的子类
对应的布局是status_bar.xml.xml
下拉通知菜单的时候又是一个,对应的类是StatusBarHeaderView,它是一个RelativeLayout
它对应的布局是Status_bar_expanded_header.xml
要想监听到电量的变化,必须实现BatteryController.BatteryStateChangeCallback这个接口,
它有两个方法,其中onBatteryLevelChanged方法就是监听电量变化的
BatteryController是一个BroadcastReceiver,当电量变化时可以收到
PowerManager.ACTION_POWER_SAVE_MODE_CHANGED这个action,
这时就会走onBatteryLevelChanged方法,所有我们只要实现这个接口就可以监听到。
KeyguardStatusBarView和StatusBarHeaderView是有实现的,所以在这里我将
PhoneStatusBar也实现了这个接口。当然这不是控制电量百分比是否显示,
在设置里面我们已经加了一个控制开关,它会将值写入数据库,我们在PhoneStatusBar
类中只需要写一个ContentObserver来监听改变来控制,其实这个百分比是一个textview,
PhoneStatusBar对应的布局是status_bar.xml,在里面加一个textview在自定义电池图标的下面,
在代码中只需要用setVisibility方法就可以控制。
KeyguardStatusBarView也是一样这样实现。
好了说了这么多,其实要编译和push的有4个东西,frameworks.jar Setting.apk
SettingsProvider.apk SystemUI.apk
相信大家都已经对Android API所提供的布局方式非常熟悉了。也许在接触Android的时候都有过这样的想法,如果可以按照百分比的方式进行界面布局,这样适配各种屏幕就简单多了吧!谷歌正式提供百分比布局支持库(android-support-percent-lib)。当然了android-percent-support这个库,基本可以解决上述问题,下面我们将对这个支持库进行介绍
这个库提供了:
两种布局供大家使用:
PercentRelativeLayout、PercentFrameLayout,通过名字就可以看出,这是继承自FrameLayout和RelativeLayout两个容器类;
支持的属性有:
layout_widthPercent、layout_heightPercent、
layout_marginPercent、layout_marginLeftPercent、
layout_marginTopPercent、layout_marginRightPercent、
layout_marginBottomPercent、layout_marginStartPercent、layout_marginEndPercent。
android5.0怎么显示电量百分比?相信很多用户对于android5.0怎么显示电量百分比还不太清楚,下面小编来跟大家分享一下安卓5.0显示电量百分比教程,感兴趣的可以过来看一下。
Android
5.0通知栏里的电池依然只是个简单的图标,但如果下拉弹出快速设置面板,就可以看到电量百分比出现了,而且据说系统原生的这个比例要比第三方工具的更精确。
更贴心的是,点击这个百分比数字,就会跳转到电池菜单,可以直接看到电量变化趋势、应用耗电情况。
显示百分比需要自己计算加载的内容,以下以webview示例,webview加载网页的时候可以增加进度条:
1.从webview中获取设置
websettings
sws
=
webview.getsettings();
sws.setsupportzoom(true);
sws.setbuiltinzoomcontrols(true);
webview.setinitialscale(25);
webview.getsettings().setusewideviewport(true);
2.注册setwebchromeclient事件
webview.setwebchromeclient(new
webchromeclient()
{
public
void
onprogresschanged(webview
view,
int
progress)
{
//
activity和webview根据加载程度决定进度条的进度大小
//
当加载到100%的时候
进度条自动消失
//webviewprogressactivity.this.settitle("loading...");
//webviewprogressactivity.this.setprogress(progress
*
100);
if
(progress
==
100)
{
progressbar.setvisibility(view.gone);
//webviewprogressactivity.this.settitle("完成");
}
}
});
3.注意在onprogresschanged中处理进度,progress就是进度值。
[img]