【问题标题】:How can an app detect the status bar color (Android 5.0 Lollipop)?应用程序如何检测状态栏颜色(Android 5.0 Lollipop)?
【发布时间】:2015-02-12 22:31:03
【问题描述】:

当我遇到Window#getStatusBarColor() 时,我一直在玩弄 Android 5.0 Lollipop API。但是,这需要Window 的实例,例如来自Activity,因此它不能在后台服务中使用。有没有办法让应用在 Android 5.0 上检测状态栏颜色?

更新

正如 Nikola Despotoski 所提到的,createScreenCaptureIntent 方法可以通过“屏幕录制”来解决问题,并且只需检查状态栏区域。
事实证明,这个方法的返回值如果传递给startActivityForResult。初始请求是从 Activity 调用的。
即使结果被保存并传递给服务,每次需要时都需要一些复杂的模式来重新请求许可。似乎也没有同步方式来获取位图。在后台,这意味着总是处理屏幕变化以获得单个像素。

【问题讨论】:

    标签: android colors window statusbar android-5.0-lollipop


    【解决方案1】:

    有趣的问题。

    您可以使用新的 Lolipop 屏幕截图 API。使用createScreenCaptureIntent()MediaProjectionManager 检索Bitmap

    获得位图后,尝试将位图从顶部=0 剪切(解码)到底部=status_bar_height。将剪切Bitmap 传递给Palette 并使用getRGB() 方法检索颜色。

    【讨论】:

    • 我想过这个,但是在CPU方面似乎过于复杂和昂贵(尤其是在快速切换应用的情况下)。
    猜你喜欢
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 2015-01-21
    • 2015-02-28
    • 2022-11-13
    相关资源
    最近更新 更多