2

WindowManager.LayoutParams.screenBrightness采用 0 到 1 之间的浮点数。

但是,似乎(至少在带有 Gingerbread 的 Nexus S 上)将该值设置得太低会强制屏幕完全关闭。

有没有办法知道在不关闭屏幕的情况下可以设置的最小值是多少?另外,这个数字在设备之间是否恒定?如果不是,我们如何在运行时检索它?

这是一些示例代码:

Window window = activity.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.screenBrightness = 0.01f; // float between 0 and 1
window.setAttributes(lp);

(这是一个应用内亮度滑块,所以我需要知道要使用的最小值)

谢谢

4

2 回答 2

5

我知道这是一个老问题,但谷歌把我带到了这篇文章,我想我会分享我的解决方案。我今天发现了这个,它对我有用。我在这里找到它:http: //developer.android.com/reference/android/view/WindowManager.LayoutParams.html#BRIGHTNESS_OVERRIDE_OFF

例子:

Window MyWindow = getWindow();
WindowManager.LayoutParams winParams = MyWindow.getAttributes();
winParams.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_OFF;
MyWindow.setAttributes(winParams);

我希望这有帮助。

于 2012-06-25T15:20:00.530 回答
0

对于那些使用 Kotlin 的人来说,单行实现是可能的

window.attributes.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_OFF
于 2021-11-07T23:49:03.427 回答