最近要添加一个小功能:
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);
}