测试Activity:

[java] view plain copy
  1. packagecom.home.screenbrightness;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.provider.Settings;
  5. importandroid.widget.SeekBar;
  6. importandroid.widget.SeekBar.OnSeekBarChangeListener;
  7. publicclassTestScreenBrightnessActivityextendsActivity{
  8. privateintbrightness;
  9. privateSeekBarseekbar;
  10. @Override
  11. protectedvoidonCreate(BundlesavedInstanceState){
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.main);
  14. seekbar=(SeekBar)findViewById(R.id.main_sb);
  15. initBrightness();
  16. seekbar.setOnSeekBarChangeListener(newOnSeekBarChangeListener(){
  17. @Override
  18. publicvoidonStopTrackingTouch(SeekBarseekBar){
  19. brightness=seekBar.getProgress();
  20. seekBar.setProgress(brightness);
  21. SetAndGetDataUtil.SetData(getApplicationContext(),"test",
  22. "light",brightness+"");
  23. }
  24. @Override
  25. publicvoidonStartTrackingTouch(SeekBarseekBar){
  26. }
  27. @Override
  28. publicvoidonProgressChanged(SeekBarseekBar,intprogress,
  29. booleanfromUser){
  30. intcurProgress=seekBar.getProgress();//得到当前进度值
  31. //当进度小于70时,设置成70,防止太黑看不见的情况。
  32. if(curProgress<70){
  33. curProgress=70;
  34. }
  35. //根据当前进度改变屏幕亮度
  36. Settings.System.putInt(getContentResolver(),
  37. Settings.System.SCREEN_BRIGHTNESS,curProgress);
  38. curProgress=Settings.System.getInt(getContentResolver(),
  39. Settings.System.SCREEN_BRIGHTNESS,-1);
  40. BrightnessUtil.setBrightness(TestScreenBrightnessActivity.this,
  41. curProgress);
  42. //BrightnessUtil.saveBrightness(TestScreenBrightnessActivity.this,
  43. //curProgress);
  44. }
  45. });
  46. }
  47. /**
  48. *初始化屏幕亮度值
  49. */
  50. privatevoidinitBrightness(){
  51. //如果开启了自动亮度调节,则关闭之
  52. if(BrightnessUtil.isAutoBrightness(this)){
  53. BrightnessUtil.stopAutoBrightness(this);
  54. }
  55. //读取文件中设置的亮度值
  56. Stringlight=SetAndGetDataUtil.GetData(this,"test","light");
  57. if(!"".equals(light)){
  58. brightness=Integer.valueOf(light);
  59. }else{
  60. brightness=BrightnessUtil.getScreenBrightness(this);
  61. }
  62. BrightnessUtil.setBrightness(this,brightness);
  63. seekbar.setProgress(brightness);
  64. }
  65. }

存取数据工具类:SetAndGetDataUtil

[java] view plain copy
  1. packagecom.home.screenbrightness;
  2. importandroid.content.Context;
  3. importandroid.content.SharedPreferences;
  4. importandroid.content.SharedPreferences.Editor;
  5. /**
  6. *保存数据的工具类
  7. *
  8. *@authorAdministrator
  9. *
  10. */
  11. publicclassSetAndGetDataUtil{
  12. privatestaticSharedPreferencessp;
  13. @SuppressWarnings("static-access")
  14. publicstaticvoidSetData(Contextcontext,Stringfilename,Stringkey,
  15. Stringvalue){
  16. sp=context.getSharedPreferences(filename,context.MODE_PRIVATE);
  17. Editoreditor=sp.edit();
  18. editor.putString(key,value);
  19. editor.commit();
  20. }
  21. @SuppressWarnings("static-access")
  22. publicstaticStringGetData(Contextcontext,Stringfilename,Stringkey){
  23. Stringvalue="";
  24. sp=context.getSharedPreferences(filename,context.MODE_PRIVATE);
  25. value=sp.getString(key,"");
  26. returnvalue;
  27. }
  28. }

屏幕亮度处理工具类:

[java] view plain copy
  1. packagecom.home.screenbrightness;
  2. importandroid.app.Activity;
  3. importandroid.content.ContentResolver;
  4. importandroid.net.Uri;
  5. importandroid.provider.Settings;
  6. importandroid.provider.Settings.SettingNotFoundException;
  7. importandroid.view.WindowManager;
  8. /**
  9. *处理屏幕亮度的工具类
  10. *
  11. *@authorAdministrator
  12. *
  13. */
  14. publicclassBrightnessUtil{
  15. /**
  16. *判断是否开启了自动亮度调节
  17. *
  18. *@paramactivity
  19. *@return
  20. */
  21. publicstaticbooleanisAutoBrightness(Activityactivity){
  22. booleanisAutoAdjustBright=false;
  23. try{
  24. isAutoAdjustBright=Settings.System.getInt(
  25. activity.getContentResolver(),
  26. Settings.System.SCREEN_BRIGHTNESS_MODE)==Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
  27. }catch(SettingNotFoundExceptione){
  28. e.printStackTrace();
  29. }
  30. returnisAutoAdjustBright;
  31. }
  32. /**
  33. *获取屏幕的亮度
  34. *
  35. *@paramactivity
  36. *@return
  37. */
  38. publicstaticintgetScreenBrightness(Activityactivity){
  39. intbrightnessValue=0;
  40. try{
  41. brightnessValue=android.provider.Settings.System.getInt(
  42. activity.getContentResolver(),
  43. Settings.System.SCREEN_BRIGHTNESS);
  44. }catch(Exceptione){
  45. e.printStackTrace();
  46. }
  47. returnbrightnessValue;
  48. }
  49. /**
  50. *设置屏幕亮度
  51. *
  52. *@paramactivity
  53. *@parambrightness
  54. */
  55. publicstaticvoidsetBrightness(Activityactivity,intbrightness){
  56. WindowManager.LayoutParamslp=activity.getWindow().getAttributes();
  57. lp.screenBrightness=Float.valueOf(brightness)*(1f/255f);
  58. activity.getWindow().setAttributes(lp);
  59. }
  60. /**
  61. *关闭亮度自动调节
  62. *
  63. *@paramactivity
  64. */
  65. publicstaticvoidstopAutoBrightness(Activityactivity){
  66. Settings.System.putInt(activity.getContentResolver(),
  67. Settings.System.SCREEN_BRIGHTNESS_MODE,
  68. Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
  69. }
  70. /**
  71. *开启亮度自动调节
  72. *
  73. *@paramactivity
  74. */
  75. publicstaticvoidstartAutoBrightness(Activityactivity){
  76. Settings.System.putInt(activity.getContentResolver(),
  77. Settings.System.SCREEN_BRIGHTNESS_MODE,
  78. Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
  79. }
  80. /**
  81. *保存亮度设置状态
  82. *
  83. *@paramactivity
  84. *@parambrightness
  85. */
  86. publicstaticvoidsaveBrightness(Activityactivity,intbrightness){
  87. Uriuri=android.provider.Settings.System
  88. .getUriFor("screen_brightness");
  89. ContentResolverresolver=activity.getContentResolver();
  90. android.provider.Settings.System.putInt(resolver,"screen_brightness",
  91. brightness);
  92. resolver.notifyChange(uri,null);
  93. }
  94. }

布局文件:

[html] view plain copy
  1. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="match_parent"
  3. android:layout_height="match_parent"
  4. android:gravity="center"
  5. android:orientation="vertical">
  6. <SeekBar
  7. android:id="@+id/main_sb"
  8. style="@android:style/Widget.ProgressBar.Horizontal"
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content"
  11. android:max="255"/>
  12. </LinearLayout>


记得加上权限:

[html] view plain copy
  1. <uses-permissionandroid:name="android.permission.WRITE_SETTINGS"/>

更多学习资料

更多相关文章

  1. Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
  2. Android系统配置数据库注释(settings.db)
  3. android 分辨率及密度详细
  4. Android屏幕常亮
  5. Android(安卓)屏幕设置
  6. android调用setRequestedOrientation之后
  7. android支持多行的radiogroup
  8. 实习杂记(27):android中关于横竖屏切换的那些事
  9. Android获取屏幕大小

随机推荐

  1. OpenCV学习笔记(六)—— OpenCV for Androi
  2. 安卓设计模式之_观察者模式
  3. 绑定本地Service和远程Service并调用其中
  4. RecycleView的多视图Epoxy库
  5. 在Eclipse中使用aar文件
  6. Android百度地图开发之获取apikey
  7. Android通过蓝牙获取通讯录
  8. ArrayMap的使用与详解
  9. android中的shape使用之android:angle
  10. TextView 设置行高并垂直居中