监控电池变化比较简单,但是充电时候要电量从当前电量增长到满状态,然后一直重复,后来发现将对应的ImageView的background指定到animation即可
1.需要多张电量图片
电量状态1
电量状态2
电量状态3
电量状态4
电量状态5
电量状态6
2.然后生成多个animation文件,分别是从状态1到状态6,状态2到状态6.。。。。。
如:animation_battery_1.xml
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/battery_1" android:duration="200" />
<item android:drawable="@drawable/battery_2" android:duration="200" />
<item android:drawable="@drawable/battery_3" android:duration="200" />
<item android:drawable="@drawable/battery_4" android:duration="200" />
<item android:drawable="@drawable/battery_5" android:duration="200" />
<item android:drawable="@drawable/battery_6" android:duration="200" />
</animation-list>
如:animation_battery_2.xml
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/battery_2" android:duration="200" />
<item android:drawable="@drawable/battery_3" android:duration="200" />
<item android:drawable="@drawable/battery_4" android:duration="200" />
<item android:drawable="@drawable/battery_5" android:duration="200" />
<item android:drawable="@drawable/battery_6" android:duration="200" />
</animation-list>
3.在代码里面通过设置ivBattery.setBackgroundResource(batteryAnimation),其中batteryAnimation为animation文件
public class BatteryActivity extends Activity {
ImageView ivBattery;//电池电量
ImageView ivBatteryCharging;//充电中
TextView tvStatus;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.battery_charging);
ivBattery = (ImageView)findViewById(R.id.iv_battry);
ivBatteryCharging = (ImageView)findViewById(R.id.iv_battry_charging);
tvStatus = (TextView)findViewById(R.id.tv_statues);
registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(batteryReceiver);
}
private BroadcastReceiver batteryReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)){
int level = intent.getIntExtra("level", 0);
int scale = intent.getIntExtra("scale", 100);
int status = intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_NOT_CHARGING);
notifyBattery(level,scale,status);
}
}
};
public void notifyBattery(int level,int scale,int status){
int per = scale/6;
int batteryPic;//电量图片
int batteryAnimation;//电量动态增长
if(level<per){
batteryAnimation = R.drawable.animation_battery_1;
batteryPic = R.drawable.battery_1;
}else if(level<per*2){
batteryAnimation = R.drawable.animation_battery_2;
batteryPic = R.drawable.battery_2;
}else if(level<per*3){
batteryAnimation = R.drawable.animation_battery_3;
batteryPic = R.drawable.battery_3;
}else if(level<per*4){
batteryAnimation = R.drawable.animation_battery_4;
batteryPic = R.drawable.battery_4;
}else if(level<per*5){
batteryAnimation = R.drawable.animation_battery_5;
batteryPic = R.drawable.battery_5;
}else{
batteryAnimation = R.drawable.animation_battery_5;
batteryPic = R.drawable.battery_6;
}
if(status==BatteryManager.BATTERY_STATUS_CHARGING){
ivBattery.setBackgroundResource(batteryAnimation);//將電量背景修改為animation即可
AnimationDrawable frameAnimation = (AnimationDrawable)ivBattery.getBackground();
if(!frameAnimation.isRunning()){
frameAnimation.stop();
frameAnimation.start();
}
ivBatteryCharging.setVisibility(View.VISIBLE);
tvStatus.setText("充电中,电量背景为animation");
}else{
ivBatteryCharging.setVisibility(View.INVISIBLE);
ivBattery.setBackgroundResource(batteryPic);
tvStatus.setText("没有充电,电量背景为图片");
}
}
}
4.记得在manifest中添加权限
<uses-permission android:name="android.permission.BATTERY_STATS"/>
5.充电的时候界面显示,其中图片是动态的
6.没有充电时候显示
7。其他图片
电池背景图片
充电的时候显示闪电
- 大小: 2.8 KB
- 大小: 2.8 KB
- 大小: 2.8 KB
- 大小: 2.8 KB
- 大小: 2.8 KB
- 大小: 2.8 KB
- 大小: 4.1 KB
- 大小: 4.1 KB
- 大小: 2.9 KB
- 大小: 2.9 KB
- 大小: 3.9 KB
分享到:
相关推荐
Android 电量显示Widgets插件实现,收到intent,就及时修改TextView信息,使得Activity显示时,电池信息也能动态显示,点击屏幕任意位置,关闭电池信息Activity,及时动态修改Activity上文字信息的函数,提示信息...
BATTERY_CHANGED_ACTION 充电状态,或者电池的电量发生变化 "android.intent.action.BATTERY_CHANGED" BOOT_COMPLETED_ACTION 在系统启动后,这个动作被广播一次(只有一次) "android.intent.action.BOOT_COMPLETED" ...
监听电池状态只需要接收Intent.ACTION_BATTERY_CHANGED的广播即可,当电池状态发生变化时会发出广播。 1.运行状态如下图: 1.充电中的状态 2.未充电时的状态 2.实现代码如下,各个状态通过名字就很容易知道...
4. **自定义通知提醒**:当电池电量低于预设阈值时,发送自定义通知提醒用户充电。 5. **历史数据记录与分析**:保存电池相关的历史数据,方便用户回顾和分析设备电池性能的变化趋势。 该项目采用Android Studio...
android-battery##名称:电池管家##描述:仿金山电池医生的一款APP================##功能:获取电池的基本信息(电量,电压,Craft.io,可用时间等)近三天电量变化充电状态显示应用耗电排行省电模式关闭卸载应用##...
要求检测到安卓手机的电量,电压,连接状态,充电连接方式,以及当前的时间,而这些与电池相关的信息都会通过系统广播发出来,去注册相应广播接收即可,然后通过BatteryManager这个类来获取这些信息。 2.>首先通过...
具体内容如下所示: Intent.ACTION_AIRPLANE_MODE_CHANGED; //关闭或打开飞行模式时的广播 Intent.ACTION_BATTERY_CHANGED;...//表示电池电量充足,即从电池电量低变化到饱满时会发出广播 Intent.ACTION_BOOT_COMP
智能模式:此模式能够随着系统负荷地变化智能调整cpu的频率,优化内核等,大幅延长电池电量的使用时长,此模式优化系统、充电、CPU、Wifi等参数,它与其他参数不同,适合一般用户。 省电模式:此模式在系统允许的低...
我想大家都见过手机充电过程中,电池电量变化的过程,没错BatteryLoading就是一款类似电池的充电过程的加载动画,动画效果炫酷、十分精美
react-native-device-battery 获取并观察设备电池电量和充电状态 安装 安装节点模块 npm install react-native-device-battery --save iOS TBD Android 将以下内容添加到android/settings.grade include ':react -...
//监测充电状态变化 intentFilter.addAction(Intent.ACTION_POWER_CONNECTED); intentFilter.addAction(Intent.ACTION_POWER_DISCONNECTED); //监测电量的重要变化 intentFilter.addAction(Intent.ACTION_...
★在您的计算机上获取低电量警报(当您的手机电量不足时) 第1步:在您的手机上安装ANDROID APP:https://market.android.com/details?id=com.texty.sms 注意 - MightyText Chrome扩展程序只有在您的手机上成功安装...