【问题标题】:Activity with transparent background and blur-filter具有透明背景和模糊过滤器的活动
【发布时间】:2017-03-14 16:11:59
【问题描述】:

我目前正在开发一个应用程序,我有一次想要打开一个具有透明背景的 Activity,以便我可以看到它下面的 Activity。这很简单,我很快就解决了。但是,现在我还想添加某种模糊过滤器,以便我的活动下方的活动看起来模糊。

我已经四处搜索并尝试了几种不同的解决方案,但没有运气,所以我试图将其添加为一个问题。有谁知道解决这个问题的好方法吗?

谢谢

【问题讨论】:

  • 你好 JesperQV。如果我的回答对你有用,请投票。

标签: java android android-activity transparent blur


【解决方案1】:

有很多图书馆可以做到这一点。 Here's 其中一份。就我个人而言,我使用了BlurView(我希望链接到其中一个库不违反站点规则)但我不得不对库进行一些修补,请参阅this issue - 拉取请求尚未出现。我也遇到了动画性能问题。

基本上所有的库都做同样的事情:

  • 为位图创建画布,尺寸缩小(例如缩小 4 倍),设置转换矩阵以应用此缩放
  • 将窗口背景渲染到 Canvas
  • 将 Activity 的根视图渲染到 Canvas
  • 使用 ScriptIntrinsicBlur 模糊画布的位图
  • 将位图绘制为视图的背景,按比例放大,例如4次

为什么要缩放?出于性能原因。将所有内容缩小 4 倍会更快,并且由于放大,模糊效果也变得“更强” - ScriptIntrinsicBlur 一次通过可以模糊多少是有限的,而多次通过又会减慢速度。

【讨论】:

    【解决方案2】:

    对于 API

    但是,您可以使用视图来执行此操作。

    从 Activity 的整体布局创建一个位图,并使用您想要的任何方法模糊该位图。在您的布局中添加(或取消隐藏)一个涵盖所有内容的视图,您的问题就解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      相关资源
      最近更新 更多