1

我正在尝试擦除图像的某些部分,所以我正在创建一个自定义ImageView,所以为了擦除,我使用以下油漆进行绘制

    mPaint = new Paint();
    mPaint.setAntiAlias(true);
    mPaint.setDither(true);
    mPaint.setColor(Color.TRANSPARENT);
    mPaint.setStyle(Paint.Style.STROKE);
    mPaint.setStrokeJoin(Paint.Join.ROUND);
    mPaint.setStrokeCap(Paint.Cap.ROUND);
    mPaint.setStrokeWidth(30);
    mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));

我正在设置XferMode清除PorterDuff.Mode.CLEAR在 android 4.1 上运行良好的图像,但是当我在 android 2.3 上测试它时,它会绘制一条黑线而不是背景颜色,并且我还禁用了硬件加速,

有人可以解释一下为什么这不适用于 android 2.3

4

1 回答 1

0

我有类似的问题,我在调用 super.onDraw(canvas) 之前使用 Canvas.clipRect 修复了它。

这个问题帮助了我:Clip round from image using xfermode in android

于 2013-04-04T09:49:42.980 回答