Android绘制模糊

时间:2009-12-30 12:29:25

标签: android canvas draw blur

我需要使用模糊效果在Android的Canvas上绘图, 这是一个非常简单的功能, 我需要绘制一个圆形区域,它是模糊的(前景)和背景透明,我可以通过操纵颜色alpha来做任何事情,使用自定义透明度,但我需要它是模糊而不是透明.. 任何想法?

3 个答案:

答案 0 :(得分:18)

(对于那些回来的人,虽然这是一个老问题)

在用于绘制颜色的Paint对象上,设置

paint.setMaskFilter(new BlurMaskFilter(8, BlurMaskFilter.Blur.NORMAL))

然后,在Android Manifest.xml中,设置

android:hardwareAccelerated="false"

适合您的活动 (当硬件加速为真时,模糊不起作用)

有关更多说明,请参阅 Android BlurMaskFilter has no effect in canvas.drawOval while text is blurred

答案 1 :(得分:0)

如果您之后不需要操作它,您可以只绘制缓冲区并逐个像素地模糊它,然后在需要绘制时将缓冲区blit到屏幕上。

或者:http://developer.android.com/reference/android/graphics/BlurMaskFilter.Blur.html

答案 2 :(得分:0)

看看这个:Android, Blur Bitmap instantly?

我再次建议你先画一个位图。缩小(尝试不同的大小),并将其缩放到原始大小(作为新的位图,或者如果你使用hw加速,则在绘制时执行)。