Android编程获取并设置Activity亮度的方法
本文实例讲述了Android编程获取并设置Activity亮度的方法。分享给大家供大家参考,具体如下:
此API只适合2.1以上版本:
/**
*判断是否开启了自动亮度调节
*
*@paramaContext
*@return
*/
publicstaticbooleanisAutoBrightness(ContentResolveraContentResolver){
booleanautomicBrightness=false;
try{
automicBrightness=Settings.System.getInt(aContentResolver,
Settings.System.SCREEN_BRIGHTNESS_MODE)==Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
}catch(SettingNotFoundExceptione){
e.printStackTrace();
}
returnautomicBrightness;
}
/**
*获取屏幕的亮度
*
*@paramactivity
*@return
*/
publicstaticintgetScreenBrightness(Activityactivity){
intnowBrightnessValue=0;
ContentResolverresolver=activity.getContentResolver();
try{
nowBrightnessValue=android.provider.Settings.System.getInt(
resolver,Settings.System.SCREEN_BRIGHTNESS);
}catch(Exceptione){
e.printStackTrace();
}
returnnowBrightnessValue;
}
/**
*设置亮度
*
*@paramactivity
*@parambrightness
*/
publicstaticvoidsetBrightness(Activityactivity,intbrightness){
//Settings.System.putInt(activity.getContentResolver(),
//Settings.System.SCREEN_BRIGHTNESS_MODE,
//Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
WindowManager.LayoutParamslp=activity.getWindow().getAttributes();
lp.screenBrightness=Float.valueOf(brightness)*(1f/255f);
activity.getWindow().setAttributes(lp);
}
/**
*停止自动亮度调节
*
*@paramactivity
*/
publicstaticvoidstopAutoBrightness(Activityactivity){
Settings.System.putInt(activity.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
}
/**
*开启亮度自动调节
*
*@paramactivity
*/
publicstaticvoidstartAutoBrightness(Activityactivity){
Settings.System.putInt(activity.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
}
/**
*保存亮度设置状态
*
*@paramresolver
*@parambrightness
*/
publicstaticvoidsaveBrightness(ContentResolverresolver,intbrightness){
Uriuri=android.provider.Settings.System
.getUriFor("screen_brightness");
android.provider.Settings.System.putInt(resolver,"screen_brightness",
brightness);
resolver.notifyChange(uri,null);
}
使用SeekBar进行亮度控制:
sSeekBar=(SeekBar)findViewById(R.id.seek_bar);
sSeekBar.setOnSeekBarChangeListener(newOnSeekBarChangeListener(){
@Override
publicvoidonStopTrackingTouch(SeekBarseekBar){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidonStartTrackingTouch(SeekBarseekBar){
}
@Override
publicvoidonProgressChanged(SeekBarseekBar,intprogress,
booleanfromUser){
if(progress<10){
}else{
setBrightness(Test2Activity.this,progress);
}
}
});
//获取当前亮度的位置
inta=getScreenBrightness(this);
sSeekBar.setProgress(a);
<SeekBar android:id="@+id/seek_bar" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:max="255" android:maxHeight="8dp" android:minHeight="8dp" android:paddingBottom="5dp" android:paddingLeft="13dp" android:paddingRight="13dp" android:progress="0" />
希望本文所述对大家Android程序设计有所帮助。