Android获取并设置Activity的亮度


此API只适合Android 2.1以上版本:

[java]

  1. /** 
  2.  * 判断是否开启了自动亮度调节 
  3.  *  
  4.  * @param aContext 
  5.  * @return 
  6.  */  
  7. public static boolean isAutoBrightness(ContentResolver aContentResolver) {  
  8.     boolean automicBrightness = false;  
  9.     try {  
  10.         automicBrightness = Settings.System.getInt(aContentResolver,  
  11.                 Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;  
  12.     } catch (SettingNotFoundException e) {  
  13.         e.printStackTrace();  
  14.     }  
  15.     return automicBrightness;  
  16. }  
  17.   
  18. /** 
  19.  * 获取屏幕的亮度 
  20.  *  
  21.  * @param activity 
  22.  * @return 
  23.  */  
  24. public static int getScreenBrightness(Activity activity) {  
  25.     int nowBrightnessValue = 0;  
  26.     ContentResolver resolver = activity.getContentResolver();  
  27.     try {  
  28.         nowBrightnessValue = android.provider.Settings.System.getInt(  
  29.                 resolver, Settings.System.SCREEN_BRIGHTNESS);  
  30.     } catch (Exception e) {  
  31.         e.printStackTrace();  
  32.     }  
  33.     return nowBrightnessValue;  
  34. }  
  35.   
  36. /** 
  37.  * 设置亮度 
  38.  *  
  39.  * @param activity 
  40.  * @param brightness 
  41.  */  
  42. public static void setBrightness(Activity activity, int brightness) {  
  43.     // Settings.System.putInt(activity.getContentResolver(),   
  44.     // Settings.System.SCREEN_BRIGHTNESS_MODE,   
  45.     // Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);   
  46.     WindowManager.LayoutParams lp = activity.getWindow().getAttributes();  
  47.     lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);  
  48.     activity.getWindow().setAttributes(lp);  
  49. }  
  50.   
  51. /** 
  52.  * 停止自动亮度调节 
  53.  *  
  54.  * @param activity 
  55.  */  
  56. public static void stopAutoBrightness(Activity activity) {  
  57.     Settings.System.putInt(activity.getContentResolver(),  
  58.             Settings.System.SCREEN_BRIGHTNESS,  
  59.             Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);  
  60. }  
  61.   
  62. /** 
  63.  * 开启亮度自动调节 
  64.  *  
  65.  * @param activity 
  66.  */  
  67. public static void startAutoBrightness(Activity activity) {  
  68.     Settings.System.putInt(activity.getContentResolver(),  
  69.             Settings.System.SCREEN_BRIGHTNESS_MODE,  
  70.             Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);  
  71. }  
  72.   
  73. /** 
  74.  * 保存亮度设置状态 
  75.  *  
  76.  * @param resolver 
  77.  * @param brightness 
  78.  */  
  79. public static void saveBrightness(ContentResolver resolver, int brightness) {  
  80.     Uri uri = android.provider.Settings.System  
  81.             .getUriFor("screen_brightness");  
  82.     android.provider.Settings.System.putInt(resolver, "screen_brightness",  
  83.             brightness);  
  84.     resolver.notifyChange(uri, null);  
  85. }  
使用SeekBar进行亮度控制:

[java]

  1. sSeekBar = (SeekBar) findViewById(R.id.seek_bar);  
  2. sSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {  
  3.       
  4.     @Override  
  5.     public void onStopTrackingTouch(SeekBar seekBar) {  
  6.         // TODO Auto-generated method stub   
  7.     }  
  8.       
  9.     @Override  
  10.     public void onStartTrackingTouch(SeekBar seekBar) {  
  11.           
  12.     }  
  13.       
  14.     @Override  
  15.     public void onProgressChanged(SeekBar seekBar, int progress,  
  16.             boolean fromUser) {  
  17.         if (progress < 10) {  
  18.         } else {  
  19.             setBrightness(Test2Activity.this, progress);  
  20.         }  
  21.     }  
  22. });  
  23.   
  24. //获取当前亮度的位置   
  25. int a =getScreenBrightness(this);  
  26. sSeekBar.setProgress(a);  
[html]
  1. <SeekBar  
  2.     android:id="@+id/seek_bar"  
  3.     android:layout_width="200dp"  
  4.     android:layout_height="wrap_content"  
  5.     android:layout_alignParentBottom="true"  
  6.     android:max="255"  
  7.     android:maxHeight="8dp"  
  8.     android:minHeight="8dp"  
  9.     android:paddingBottom="5dp"  
  10.     android:paddingLeft="13dp"  
  11.     android:paddingRight="13dp"  
  12.     android:progress="0"  
  13.      />  

相关内容