使用ProgressBar显示电池电量信息

自定义的样式颜色

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 背景  gradient是渐变,corners定义的是圆角 -->
    <item android:id="@android:id/background">
        <nine-patch
            android:dither="true"
            android:src="@drawable/icon_battery" />
    </item>
    <!-- 进度条 -->
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="0dp" />
                <solid android:color="#888882" />
            </shape>
        </clip>
    </item>

</layer-list>

布局使用

 <ProgressBar
            android:id="@+id/pgb_battery"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="20dp"
            android:layout_height="10dp"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="4dp"
            android:layout_marginTop="1dp"
            android:max="100"
            android:progress="50"
            android:progressDrawable="@drawable/read_battery" />

说明:max表示最大的值、progress表示当前的值

电池信息的监听

  private BroadcastReceiver batteryReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
                //获取当前电量
                int level = intent.getIntExtra("level", 0);
                //电量的总刻度
                int scale = intent.getIntExtra("scale", 100);

            }
        }
    };

说明:注意要去注册和注销广播