packagecom.skywang.control;importandroid.os.Bundle;importandroid.app.Activity;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.util.Log;importandroid.content.ContentResolver;importandroid.net.Uri;importandroid.provider.Settings;importandroid.provider.Settings.SettingNotFoundException;importandroid.view.WindowManager;public class ButtonTest extends Activity implementsView.OnClickListener{private static final String TAG = "SKYWANG";private Button mButtonPlus = null;private Button mButtonMinus = null;private int mBrightness = 100;private static final int MIN_BRIGHTNESS = 10;private static final int MAX_BRIGHTNESS = 255;private static final int STEP_LEN = 10;
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.button_test);//儲存原始的亮度值
mBrightness =getBrightness();
mButtonPlus=(Button)findViewById(R.id.button_plus);
mButtonPlus.setOnClickListener(this);
mButtonMinus=(Button)findViewById(R.id.button_minus);
mButtonMinus.setOnClickListener(newView.OnClickListener() {
@Overridepublic voidonClick(View v) {
Log.d(TAG,"click button minus");//減少亮度
minusBrightness();
}
});
}
@Overridepublic voidonClick(View v) {switch(v.getId()) {caseR.id.button_plus: {
Log.d(TAG,"click button plus");//增加亮度
plusBrightness();break;
}default:break;
}
}//button_reset的實作函數
public voidclickReset(View v) {
Log.d(TAG,"click reset");
setBrightness(mBrightness);
}
private intgetBrightness() {int brightness = 0;try{
brightness=Settings.System.getInt(getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS);
}catch(SettingNotFoundException snfe) {
}returnbrightness;
}
private void setBrightness(intbrightness) {
WindowManager.LayoutParams lp=getWindow().getAttributes();
lp.screenBrightness= Float.valueOf(brightness) * (1f /255f);
getWindow().setAttributes(lp);//若不儲存亮度,退出該activity之後,亮度值會還原。
saveBrightness(getContentResolver(), brightness);
}
private void saveBrightness(ContentResolver resolver, intbrightness) {
Uri uri=android.provider.Settings.System
.getUriFor("screen_brightness");
android.provider.Settings.System.putInt(resolver,"screen_brightness",
brightness);
resolver.notifyChange(uri,null);
}
private voidplusBrightness() {int brightness =getBrightness();if (brightness
brightness+=STEP_LEN;
brightness= brightness
setBrightness(brightness);
Log.d(TAG,"plus brightness : "+pre+"->"+brightness);
}else{
Log.d(TAG,"max Brightness!");
}
}
private voidminusBrightness() {int brightness =getBrightness();if (brightness >MIN_BRIGHTNESS) {int pre=brightness;
brightness-=STEP_LEN;
brightness= brightness>MIN_BRIGHTNESS ?brightness: MIN_BRIGHTNESS;
setBrightness(brightness);
Log.d(TAG,"minus brightness : "+pre+"->"+brightness);
}else{
Log.d(TAG,"min Brightness!");
}
}
}