1. 程式人生 > >安卓開發—自定義電池電量顯示狀態

安卓開發—自定義電池電量顯示狀態

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;
        }
    }

這樣,就設定成功了