public void SetBright(float value)
{
Window mywindow = getWindow();
WindowManager.LayoutParams lp = mywindow.getAttributes();
lp.screenBrightness = value;
mywindow.setAttributes(lp);
}
我想调整屏幕亮度。但是当我尝试使用这种方法时没有任何反应。会不会是因为我使用了 KEEP_SCREEN_ON 标志?
最佳答案
确保在设置屏幕亮度之前未启用“自动亮度”。如果您使用的是 Android 2.2 或更高版本的 SDK,您可以在设置 > 显示或使用代码中手动执行此操作。
类似于:
int brightnessMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
}
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = 0.5F; // set 50% brightness
getWindow().setAttributes(layoutParams);
确保该值介于 0.0F 和 1.0F 之间。值 -1.0F 使用首选项中存储的默认亮度。根据文档“默认值小于 0 表示使用首选屏幕亮度。0 到 1 将亮度从暗调整到全亮。”
关于安卓 2.2 : Adjusting screen brightness,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4621490/