Android系统亮度与应用亮度

最近要添加一个小功能:
1、如果使用应用里某个界面的亮度,可以通过应用的某界面seekbar来滑动调节,系统亮度无效;
2、如果选择系统亮度,则应用亮度跟随系统亮度。

下面上码老师

   /**设置应用的亮度,看代码就知道只是某个界面(窗口)亮度
     * 
     * @param brightnessValue 0 - 255
     * localLayoutParams.screenBrightness:值范围0.0 - 1.0
     */
    public void setScreenBrightnessValue(int brightnessValue) {
        Window localWindow = getWindow();
        WindowManager.LayoutParams localLayoutParams = localWindow.getAttributes();
        localLayoutParams.screenBrightness = brightnessValue / 255.0F;
        localWindow.setAttributes(localLayoutParams);
    }

设置应用随系统亮度

 protected void setScreenBrightnessAuto() {
        final WindowManager.LayoutParams attrs = getWindow().getAttributes();
        attrs.screenBrightness = -1.0f;//-1代表使用系统亮度
        getWindow().setAttributes(attrs);
    }

当然少不了获取系统亮度

/**
  *获取的值在0-255范围
  */
 public int getSystemScreenBrightnessValue() {
        ContentResolver contentResolver = getContentResolver();
        int defVal = 125;
        return Settings.System.getInt(contentResolver,
                Settings.System.SCREEN_BRIGHTNESS, defVal);
    }



上面说完了,下面来说说系统亮度,不过下面修改系统亮度的正常应用一般很少用到

屏幕亮度调节模式(系统)

1、Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC:值为1,自动调节亮度。
2、Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL:值为0,手动模式。

改变系统亮度值

在设置系统屏幕亮度前,需要保证AndroidManifest.xml中声明如下权限

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

然后调节

   /**
     * 
     * @param value 0- 255 要改变系统的亮度的值
     */
    private void setScreenBrightness(int value) {
        ContentResolver contentResolver = getContentResolver();
        Settings.System.putInt(contentResolver,
                Settings.System.SCREEN_BRIGHTNESS, value);
    }

猜你喜欢

转载自blog.csdn.net/u014769864/article/details/78964229