如何通过图像显示电池电量?

时间:2015-02-05 05:08:14

标签: android

我想使用图像显示手机的电池电量,这些图像会随着电池电量的增加或减少而动态变化。他们是否有任何特定的API?对此的任何参考都会很棒..

2 个答案:

答案 0 :(得分:2)

在班级中创建一个想要显示电池级别的接收器,如

private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
    @Override
    public void onReceive(Context ctxt, Intent intent) {
      int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
      batteryTxt.setText(String.valueOf(level) + "%");

      if(level > 90)
        img_battery.setImageResource(R.drawable.battery9);
      else if(level > 80)
        img_battery.setImageResource(R.drawable.battery8);
      else if(level > 70)
        img_battery.setImageResource(R.drawable.battery7);
      else if(level > 60)
        img_battery.setImageResource(R.drawable.battery6);
      else if(level > 50)
        img_battery.setImageResource(R.drawable.battery5);
      else if(level > 35)
        img_battery.setImageResource(R.drawable.battery4);
      else if(level > 20)
        img_battery.setImageResource(R.drawable.battery3);
      else if(level > 5)
        img_battery.setImageResource(R.drawable.battery2);
      else if(level > 2)
        img_battery.setImageResource(R.drawable.battery1);
      else 
        img_battery.setImageResource(R.drawable.battery0);

    }
};

并在onCreate中注册接收器

this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

不要忘记在onDestroy中取消注册它

@Override
protected void onDestroy() {
    this.unregisterReceiver(this.mBatInfoReceiver);
    super.onDestroy();
}

和img_battery将是显示电池电量的ImageView,而batteryTxt则是显示精确百分比的TextView。

答案 1 :(得分:0)

您可以选择自定义电池寿命视图。包装矩形,内部指示器矩形。使用不同级别的电池,您可以绘制不同宽度和颜色的内部容器。 Draw png也很平易近人