6
我需要以编程方式更改屏幕亮度。我阅读了多种解决方案,如Can't apply system screen brightness programmatically in Android。有效更改屏幕亮度
我的问题是,这些解决方案意味着改变活动是有效的(有像虚拟活动立即完成),我想避免活动开关的开销。
是否有任何其他解决方案...也许使用本机代码,以便屏幕亮度会立即改变?
我需要以编程方式更改屏幕亮度。我阅读了多种解决方案,如Can't apply system screen brightness programmatically in Android。有效更改屏幕亮度
我的问题是,这些解决方案意味着改变活动是有效的(有像虚拟活动立即完成),我想避免活动开关的开销。
是否有任何其他解决方案...也许使用本机代码,以便屏幕亮度会立即改变?
以下情况会立即影响单个活动,无需重新启动它。该活动还会记住暂停/恢复过程中的screenBrightness属性。
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 1; // 0f - no backlight ... 1f - full backlight
getWindow().setAttributes(lp);
但是,如果您在系统设置中启用了自动背光级别,则它不起作用。 This solution应该有助于关闭自动背光。
即使启用了“自动背光级别”,也可以使用WindowManager.LayoutParams设置屏幕亮度。正如文档中所述,“screenBrightness可以用来覆盖用户的首选屏幕亮度”。测试Android 4.1和4.4。这是来自Android框架工程师的确认:https://groups.google.com/forum/#!msg/android-developers/tYlCn7bvAmw/2quRf_ZZZigJ – AnAurelian 2014-05-06 10:27:12