Android根据电量变化为不同图片的方法【电池电量提示】

1 主类

package com.jli.battery;

import android.app.Activity;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.content.SharedPreferences;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.IBinder;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class Main extends Activity {
	
	private ImageView tvBatteryChanged;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tvBatteryChanged = (ImageView)findViewById(R.id.test);
        //注册一个接受广播类型
        registerReceiver(new BatteryBroadcastReceiver(), new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
    }
    
    /**接受电量改变广播*/
    class BatteryBroadcastReceiver extends BroadcastReceiver{
    	
    	@Override
    	public void onReceive(Context context, Intent intent) {
    		
    		if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)){
    			
			    int level = intent.getIntExtra("level", 0);
  				int scale = intent.getIntExtra("scale", 100);
   				int curPower = (level * 100 / scale)/25;
   				switch (curPower) {
				case 0:
					tvBatteryChanged.setImageBitmap(BitmapFactory.decodeResource(Main.this.getResources(), R.drawable.power0));
					break;
				case 1:
					tvBatteryChanged.setImageBitmap(BitmapFactory.decodeResource(Main.this.getResources(), R.drawable.power1));
					break;
				case 2:
					tvBatteryChanged.setImageBitmap(BitmapFactory.decodeResource(Main.this.getResources(), R.drawable.power2));
					break;
				case 3:
					tvBatteryChanged.setImageBitmap(BitmapFactory.decodeResource(Main.this.getResources(), R.drawable.power3));
					break;
				case 4:
					tvBatteryChanged.setImageBitmap(BitmapFactory.decodeResource(Main.this.getResources(), R.drawable.power4));
					break;
				}
    		}
    	}

    }

}

2 xml



	


3 然后记得要加上这句,这个应该是注册电池广播的,如果不加的话会报错,放在Manifest.xml这个文件里面


4 效果图【其实代码很好理解的,都不用怎么仔细看的】


你可能感兴趣的:(Android)