1

我的应用程序显示电池电量。我有三个电池图像;一绿一黄一红。我想在电池电量变化时将这些图像放在图像视图中。例如:当电池电量为 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"
            />

谢谢

4

1 回答 1

1

您可以使用BatteryManager获取电池电量。在这里查看文档

int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

float batteryPct = level / (float)scale;

现在根据batterPct的代码设置具体的图片

并监控更改使用以下

声明广播接收器

<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;
    }
}
于 2013-06-30T13:26:11.507 回答