确保在设置屏幕亮度之前未启用“自动亮度”。如果您使用的是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将亮度从暗调整为全亮。”
只是注意,当你粘贴到你的这IDE,它抱怨'Settings.system ....'确保你的项目设置为使用atleast android v 2.3.3,否则它不会编译:) – Garbit 2012-02-10 14:08:20