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程序设计有所帮助。