我需要使用模糊效果在Android的Canvas上绘图, 这是一个非常简单的功能, 我需要绘制一个圆形区域,它是模糊的(前景)和背景透明,我可以通过操纵颜色alpha来做任何事情,使用自定义透明度,但我需要它是模糊而不是透明.. 任何想法?
答案 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加速,则在绘制时执行)。