【问题标题】:Android, how to blur/glass/frost current activityAndroid,如何模糊/玻璃/霜当前活动
【发布时间】:2012-11-04 13:21:54
【问题描述】:

基本上

在一个活动中,我有一个 ListView。 当我选择一个项目时,一个透明的活动会以一个小框的形式打开。 当此框出现时,您仍然可以查看之前的活动屏幕,

我想弄清楚的是如何像 图片链接here(忽略UI,只看模糊的草地区域)。

这怎么可能?

感谢您的任何建议。

【问题讨论】:

    标签: java android user-interface android-activity background


    【解决方案1】:

    对于 API WindowManager.LayoutParams.FLAG_BLUR_BEHIND,但它已被弃用,并且更高的 API 不再支持内置模糊

    但是,您可以使用常规视图或叠加层来执行此操作。你想做的是:

    • 从 Activity 的整体布局中创建 Bitmap (see here for example)
    • 用任何你想要的方法模糊该位图(a few examples here)
    • 在您的布局中添加(或取消隐藏)View,涵盖所有内容。设置 bkg 为模糊位图
    • 打开您的对话框/透明活动
    • 当它关闭时,删除 ViewsetVisibility(GONE)(如果您将再次使用它)。

    【讨论】:

    • 谢谢你,我现在就试试这个!
    • 你好,模糊示例需要几秒钟才能模糊,所以这会延迟新活动的打开,我该如何解决这个问题?因为我希望它尽可能快地模糊和打开。
    • 您是否尝试过显示答案的 NDK 版本?据报道,作者获得了 40 倍的原生加速。如果您对其他所有内容都是纯 Java,则可能有点模糊,但值得一试。另一个想法可能是通过每轮增加 2 来改变像素循环。它不会是一个像素完美的模糊,但如果你只是为两个 x/y 做每隔一个像素,它应该只需要 1/4 的时间。我不确定它的外观,但只需几分钟即可更改循环以找出答案。
    • 更改算法无效。现在发现很难实现 NDK 版本
    • 很遗憾,NDK 可能是您的最佳选择。良好的模糊不是最难的图像处理动作,但也不是最快的。您也许可以找到一种在 Java 中足够快的“脏”模糊算法,但我没有一个可以立即推荐的算法。
    猜你喜欢
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 2012-07-21
    • 2019-04-16
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多