【问题标题】:Changing screen brightness efficiently有效改变屏幕亮度
【发布时间】:2013-04-13 18:10:42
【问题描述】:

我需要以编程方式更改屏幕亮度。我阅读了多个类似Can't apply system screen brightness programmatically in Android 的解决方案。

我的问题是,这些解决方案意味着将活动更改为有效(让虚拟活动立即完成),我想避免活动切换的开销。

有没有其他解决方案...也许使用本机代码使屏幕亮度立即改变?

【问题讨论】:

    标签: android


    【解决方案1】:

    以下立即影响单个活动,无需重新启动它。 Activity 还会在暂停/恢复时记住 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 框架工程师的确认:groups.google.com/forum/#!msg/android-developers/tYlCn7bvAmw/…
    猜你喜欢
    • 2012-09-11
    • 1970-01-01
    • 2020-11-23
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    相关资源
    最近更新 更多