【发布时间】:2010-12-31 02:22:58
【问题描述】:
我需要使用模糊效果在 Android 的 Canvas 上绘图, 这是一个非常简单的功能, 我需要绘制一个圆形区域,该区域是模糊的(前景)和透明的背景,我可以通过操纵颜色 alpha 来完成所有操作以使用自定义透明度来完成,但我需要它是模糊的而不是透明的。 有什么想法吗?
【问题讨论】:
我需要使用模糊效果在 Android 的 Canvas 上绘图, 这是一个非常简单的功能, 我需要绘制一个圆形区域,该区域是模糊的(前景)和透明的背景,我可以通过操纵颜色 alpha 来完成所有操作以使用自定义透明度来完成,但我需要它是模糊的而不是透明的。 有什么想法吗?
【问题讨论】:
(对于那些回来的人,虽然这是一个老问题)
在您用来绘制颜色的 Paint 对象上,设置
paint.setMaskFilter(new BlurMaskFilter(8, BlurMaskFilter.Blur.NORMAL))
然后,在 Android Manifest.xml 中,设置
android:hardwareAccelerated="false"
为您的活动 (当硬件加速为真时,Blur 不起作用)
更多解释请参考 Android BlurMaskFilter has no effect in canvas.drawOval while text is blurred
【讨论】:
如果您之后不需要对其进行操作,您可以只绘制一个缓冲区并自己逐个像素地模糊它,然后在需要绘制它时将该缓冲区blit 到屏幕上。
或者这个:http://developer.android.com/reference/android/graphics/BlurMaskFilter.Blur.html
【讨论】:
看看这个:Android, Blur Bitmap instantly?
我再次建议您先绘制位图。将其缩小(尝试不同的大小),然后将其缩放回原始大小(作为新的位图,或者如果您在绘制时使用硬件加速)。
【讨论】: