歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android獲取並設置Activity的亮度

Android獲取並設置Activity的亮度

日期:2017/3/1 10:39:06   编辑:Linux編程

此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. * @param activity
  21. * @return
  22. */
  23. public static int getScreenBrightness(Activity activity) {
  24. int nowBrightnessValue = 0;
  25. ContentResolver resolver = activity.getContentResolver();
  26. try {
  27. nowBrightnessValue = android.provider.Settings.System.getInt(
  28. resolver, Settings.System.SCREEN_BRIGHTNESS);
  29. } catch (Exception e) {
  30. e.printStackTrace();
  31. }
  32. return nowBrightnessValue;
  33. }
  34. /**
  35. * 設置亮度
  36. *
  37. * @param activity
  38. * @param brightness
  39. */
  40. public static void setBrightness(Activity activity, int brightness) {
  41. // Settings.System.putInt(activity.getContentResolver(),
  42. // Settings.System.SCREEN_BRIGHTNESS_MODE,
  43. // Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
  44. WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
  45. lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);
  46. activity.getWindow().setAttributes(lp);
  47. }
  48. /**
  49. * 停止自動亮度調節
  50. *
  51. * @param activity
  52. */
  53. public static void stopAutoBrightness(Activity activity) {
  54. Settings.System.putInt(activity.getContentResolver(),
  55. Settings.System.SCREEN_BRIGHTNESS,
  56. Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
  57. }
  58. /**
  59. * 開啟亮度自動調節
  60. *
  61. * @param activity
  62. */
  63. public static void startAutoBrightness(Activity activity) {
  64. Settings.System.putInt(activity.getContentResolver(),
  65. Settings.System.SCREEN_BRIGHTNESS_MODE,
  66. Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
  67. }
  68. /**
  69. * 保存亮度設置狀態
  70. *
  71. * @param resolver
  72. * @param brightness
  73. */
  74. public static void saveBrightness(ContentResolver resolver, int brightness) {
  75. Uri uri = android.provider.Settings.System
  76. .getUriFor("screen_brightness");
  77. android.provider.Settings.System.putInt(resolver, "screen_brightness",
  78. brightness);
  79. resolver.notifyChange(uri, null);
  80. }
使用SeekBar進行亮度控制:

[java]

  1. sSeekBar = (SeekBar) findViewById(R.id.seek_bar);
  2. sSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
  3. @Override
  4. public void onStopTrackingTouch(SeekBar seekBar) {
  5. // TODO Auto-generated method stub
  6. }
  7. @Override
  8. public void onStartTrackingTouch(SeekBar seekBar) {
  9. }
  10. @Override
  11. public void onProgressChanged(SeekBar seekBar, int progress,
  12. boolean fromUser) {
  13. if (progress < 10) {
  14. } else {
  15. setBrightness(Test2Activity.this, progress);
  16. }
  17. }
  18. });
  19. //獲取當前亮度的位置
  20. int a =getScreenBrightness(this);
  21. 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. />
Copyright © Linux教程網 All Rights Reserved