我的应用程序显示电池电量。我有三个电池图像;一个是绿色,一个是黄色,另一个是红色。当电池电量变化时,我想在图像中查看这些图像..例如:当电池电量为100%时会出现绿色电池,当电池电量为50%时为黄色电池,而当电池电量为20%时为红色电池。我该怎么做呢?现在,我在列表视图中有一个静态图像,如下所示:
<ImageView
android:id="@+id/BatteryInfoimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="image"
android:adjustViewBounds="true"
android:src="@drawable/battery"
/>谢谢
发布于 2013-06-30 21:26:12
您可以使用BatteryManager获取电池电量。请参阅文档here
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float batteryPct = level / (float)scale;现在,根据batterPct设置特定图像的代码
要监视更改,请使用以下命令
声明一个BroadCastReceiver
<receiver android:name=".PowerConnectionReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
</intent-filter>
</receiver>在关联的BroadcastReceiver实现中,您可以提取上一步中描述的当前计费状态和方法。
public class PowerConnectionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
status == BatteryManager.BATTERY_STATUS_FULL;
int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
}
}https://stackoverflow.com/questions/17390788
复制相似问题