监控电池变化比较简单,但是充电时候要电量从当前电量增长到满状态,然后一直重复,后来发现将对应的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
分享到:
相关推荐
首先,uboot充电显示功能是在电量低于特定阈值时,当设备插入充电器时,系统会进入一个特殊的uboot充电状态。在这个状态下,uboot不仅会显示充电信息,还可能限制设备的功能,以保护电池并确保安全充电。当电池电量...
Android 获取电池电量是 Android 应用程序开发中一个常见的需求,通过获取电池电量,可以实现在手机电池电量低时发出警告,或者在电池电量不足时提醒用户充电。Android 系统中提供了多种方式来获取电池电量,本文将...
在Android开发中,创建一个模拟真实手机电池电量进度的组件是一项常见的需求,它可以提供用户友好的界面反馈。本文将深入探讨如何实现一个上下滚动的电池电量进度条,并根据电量百分比进行动态更新。 首先,我们...
本文将深入探讨“电量计-gauge驱动android”这一主题,重点关注max17040和bq27410这两款电量计芯片在Android设备中的驱动实现。 首先,max17040是一款集成的锂离子/锂聚合物电池电量计,它通过I2C接口与主控芯片...
当电池状态发生变化时,BroadcastReceiver会接收到这个广播,并在onReceive()方法中处理新的电池状态。 在提供的源代码中,应该包含了创建BroadcastReceiver,注册接收ACTION_BATTERY_CHANGED广播,以及解析和更新...
"接收系统广播实现查看电池电量"这一技术点涉及到Android的Intent机制、BroadcastReceiver(广播接收器)以及电池状态数据的解析。下面将详细介绍如何实现这个功能。 首先,我们需要创建一个BroadcastReceiver来...
在Android中,可以使用AnimationDrawable类创建帧动画,将不同电量的图标作为帧,通过设置动画时长和帧率,模拟充电过程。在iOS中,可以使用UIView的动画方法,结合CADisplayLink或者NSTimer定时更新电池图标的图片...
Android系统的BatteryManager服务提供了关于电池状态的各种信息,如电量、充电状态、电压等。通过获取BatteryManager的实例,我们可以查询到这些信息。 2. **获取BatteryManager实例**: 首先,我们需要在应用...
此外,Android系统会发送广播`ACTION_BATTERY_CHANGED`当电池状态发生变化时,开发者可以通过注册BroadcastReceiver监听这个广播来实时获取电量变化: ```java IntentFilter filter = new IntentFilter(Intent....
Android 电量显示Widgets插件实现,收到intent,就及时修改TextView信息,使得Activity显示时,电池信息也能动态显示,点击屏幕任意位置,关闭电池信息Activity,及时动态修改Activity上文字信息的函数,提示信息...
需要创建一个广播接收器`PowerConnectionReceiver`,并在`AndroidManifest.xml`中注册它,同时指定`ACTION_POWER_CONNECTED`和`ACTION_POWER_DISCONNECTED`这两个意图过滤器,这样当充电状态发生变化时,接收器会被...
在Android开发中,动态绘制电池电量是一个常见的需求,特别是在创建自定义系统状态栏或者电量监控应用时。这个“Android动态绘制电池电量.rar”压缩包很可能包含了一个示例项目,用于展示如何实现实时更新的电池电量...
你需要创建一个注册了ACTION_BATTERY_CHANGED广播接收器的类,该广播会在电池状态改变时触发,如电量变化、充电状态等。 2. **BatteryManager**: Android提供的BatteryManager服务是获取电池状态信息的主要接口。你...
此外,可能还需要考虑电量变化时的动态效果,如平滑过渡或轻微的动画效果。 6. **更新频率**: 考虑到性能和电池消耗,Widget的更新频率需要适当调整。通常,电量百分比的变化不会太频繁,所以可以设定一定的更新...
为了更精确地获取电量变化,可以注册BroadcastReceiver监听ACTION_BATTERY_CHANGED广播。 ```java IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); registerReceiver(batteryReceiver, ...
通过这个源码示例,开发者可以学习如何在Android应用中实时监控电池状态,并在电量变化时做出相应的响应,这对于电量管理类应用尤其有用。理解并掌握这些知识点,对于Android开发人员来说是非常有价值的。
在Android系统中,开发者可以通过监听系统的BatteryManager广播来获取设备的电量变化情况,以及与之相关的锁屏和解锁事件。这个过程涉及到Android的BroadcastReceiver、IntentFilter和电池状态API的使用。下面我们将...
### Android充电伴侣的设计和实现 #### 一、引言 随着移动互联网技术的快速发展和智能设备功能的不断拓展,智能手机已成为现代人生活中不可或缺的一部分。然而,由于强大的功能和丰富的应用,智能手机面临着一个...
1. **BatteryManager**:Android的BatteryManager服务提供了电池状态的信息,如电量百分比、充电状态等。通过`getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY)`可获取电池当前容量。 2. **Intent.ACTION_...
通常,Android系统会自动处理屏幕方向变化,但电量图标的布局和大小可能需要特殊调整,以确保在不同尺寸和方向的屏幕上都能清晰、美观地显示。开发者可能需要为横屏和竖屏分别设计图标,并在代码中适当地应用这些...