旧方法
Window window = getWindow();
LayoutParams layoutParams = window.getAttributes();
layoutParams.screenBrightness = newFloatValue;
window.setAttributes(layoutParams);
Run Code Online (Sandbox Code Playgroud)
在"设置">"显示">"亮度"中选中" 自动亮度"时,不适用于HTC Desire .
是否有特定于HTC的解决方法?
当然,您不会看到任何变化,因为设置被设置为“自动亮度”。这意味着,任何手动更改都将被忽略。或者我错过了什么?
我刚刚在HTC Desire HD (2.3.5)上测试了它,屏幕亮度确实改变了大约一秒钟,但随后它立即被自动亮度重新调整/覆盖。但是,如果您在设置中取消选中“自动亮度”选项,您可以看到该值已正确更改。
所以,在我看来,一切都按预期进行。如果您希望更改生效,您可能必须先禁用自动亮度:
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
Run Code Online (Sandbox Code Playgroud)