用画布绘制模糊圈

时间:2014-12-17 06:15:13

标签: android canvas blurry

我想在针的开头做模糊效果

enter image description here

为此,我使用BlurMaskFilter,但在针上绘制的模糊圆圈几乎不可见。

要画针我使用:

    handPath = new Path();
    handPath.moveTo(0.5f, 0.5f);
    handPath.lineTo(0.5f - 0.010f, 0.5f);
    handPath.lineTo(0.5f - 0.010f, 0.5f - 0.32f);
    handPath.lineTo(0.5f + 0.010f, 0.5f - 0.32f);
    handPath.lineTo(0.5f + 0.010f, 0.5f);
    handPath.lineTo(0.5f, 0.5f);
    // Add blur effect
    handBlurPaint = new Paint();
    handBlurPaint.setColor(Color.BLACK);
    handBlurPaint.setMaskFilter(new BlurMaskFilter(8, Blur.NORMAL));

我要用手画

        float handAngle = degreeToAngle(handPosition);
        canvas.save(Canvas.MATRIX_SAVE_FLAG);
        canvas.rotate(handAngle, 0.5f, 0.5f);
        canvas.drawPath(handPath, handPaint);
        canvas.restore();
        //Add blur effect           
        canvas.drawCircle(0.5f, 0.5f, 0.1f, handBlurPaint);

结果

enter image description here

我试过

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

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

我该怎么做才能达到效果? 提前谢谢。

更新

2D graphics with Effects链接中的Blur过滤器正在运行。

UPDATE2

使用RadialGradient我设法做的几乎和我想要的一样。感谢@dwana

handBlurPaint.setShader(new RadialGradient(0.5f, 0.5f, 0.2f,Color.BLACK, Color.TRANSPARENT, TileMode.MIRROR));

和结果

enter image description here

0 个答案:

没有答案