【发布时间】:2016-02-02 09:08:51
【问题描述】:
我需要帮助实施模糊解决方案才能完成以下任务:
- 我有一个与整个活动匹配的 ScrollView,具有动态内容:可以添加、动画、删除等内容;
- 我有一个标题隐藏内容被滚动到屏幕顶部时
那个header实际上是应该模糊通过的内容然后从屏幕上消失的那个。
我尝试使用许多库,例如Stackblur、paveldudka's blurring,最后是500px own library。
其中一些失败了(没有模糊,或者不是预期的结果),我仍在试图找出原因......
他们都使用相同的技术Android RenderScript Library。
主要问题是这些库提供了一次性渲染。意思是,他们的模糊一次,就是这样。它非常适合固定背景/内容。
500px 库最接近我正在寻找的内容:
- 他们的演示展示了一个带有动画图像的屏幕,中间有一个模糊的正方形;
- 如果所述图像通过所述模糊方块下方,它们会动态地变得模糊
查看代码,模糊是在动画侦听器的 update 方法 中重新渲染的。这是非常昂贵的,我想知道这是否可行。
【问题讨论】:
-
在像滚动这样的动画期间,可能没有足够有效的方法来动态模糊 ui。当我说“高效”时,我的意思是性能方面。不管怎样,试试这个库:github.com/wasabeef/Blurry
-
谢谢,但看起来这个库是一个易于使用的模糊图像解决方案。再一次,非常适合固定内容。无法在 ScrollView 中使用它。正如你所说,我相信他们没有这样的方式来完成我正在寻找的东西。我需要将 bitmapdrawable 从一个与标题大小相同的矩形中绘制出来,以捕获标题下方的内容,将其模糊并将其设置为标题背景。在我的情况下,每次用户滚动时我都必须这样做......
-
另一种选择是模仿模糊图像的感觉,即带有半透明层的东西。如果您必须模糊的视图在颜色方面看起来非常相似,您可以生成一个模糊图像并使用该图像的半透明层。
-
@gilgil28 我同意你的选择。我也在想同样的事情。渐变色透明的东西。问题是滚动内容可能非常多样化,因此渲染效果不会很令人满意。但这仍然是一个可行的选择。感谢您的意见:) 不过很奇怪的是,在 iOS 上很容易做到这一点:/
-
也许值得检查一下这是如何在 iOS 中实现的。这一定是某种解决方法,可能比我建议的更复杂
标签: java android blur renderscript