安卓開發—自定義電池電量顯示狀態
阿新 • • 發佈:2019-02-07
1、編寫broadcastreceiver
class BatteryReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int level = intent.getIntExtra("level", 0);//0~100;
setBattery(level);
}
}
2、定義及繫結
private BatteryReceiver mBatteryReceiver;
//註冊電量廣播
mBatteryReceiver = new BatteryReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(mBatteryReceiver, intentFilter);
3、自定義設定電池狀態
private void setBattery(int level) {
if (level <= 0 ) {
mMediaImBattery.setImageResource(R.drawable.ic_battery_0);
} else if (level <= 10) {
mMediaImBattery.setImageResource(R.drawable.ic_battery_10);
} else if (level <= 20) {
mMediaImBattery.setImageResource(R.drawable.ic_battery_20);
} else if (level <= 40 ) {
mMediaImBattery.setImageResource(R.drawable.ic_battery_40);
} else if (level <= 60) {
mMediaImBattery.setImageResource(R.drawable.ic_battery_60);
} else if (level <= 80) {
mMediaImBattery.setImageResource(R.drawable.ic_battery_80);
} else if (level <= 100) {
mMediaImBattery.setImageResource(R.drawable.ic_battery_100);
} else {
mMediaImBattery.setImageResource(R.drawable.ic_battery_100);
}
}
//我寫的是圖片顯示電量
//當然,只要大家拿到了電量,即可自定義
//別忘了呼叫這個函式
4、別忘了銷燬廣播接收者
@Override
protected void onDestroy() {
super.onDestroy();
//登出電量監聽者
if (mBatteryReceiver != null) {
unregisterReceiver(mBatteryReceiver);
mBatteryReceiver = null;
}
}
這樣,就設定成功了