在 Android 上用透明颜料绘图

Drawing with Transparent Paint on Android

当我在 Android 中的普通二维 canvas 上使用 PaintColor.TRANSPARENT 时,我没有得到任何结果,我的目的是摆脱canvas上的一些内容。我的意思是我要处理的内容不会消失。

这是我的代码 Paint:

mPointFillPaint = new Paint();
mPointFillPaint.setColor(Color.TRANSPARENT);
mPointFillPaint.setAntiAlias(true);
mPointFillPaint.setStyle(Paint.Style.FILL);
mPointFillPaint.setStrokeJoin(Paint.Join.MITER); 

以下Paint配置应该有所帮助:

mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setColor(Color.TRANSPARENT);
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT));
mPaint.setAntiAlias(true);

我发现使用

mPaint.setColor(Color.TRANSPARENT);
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT));

mPaint.setColor(Color.TRANSPARENT);
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));

刚刚把我的油漆涂黑了。

我有另一种方法,就是为我的 colors.xml

引入透明颜色
    <color name="transparentColor">#00ffffff</color>

我选择了“00ffffff”案例,但我很确定“00000000”也可以,具体取决于您的案例。

最终代码如下:

    mPaint = new Paint();
    mPaint.setAntiAlias(true);
    mPaint.setColor(getResources().getColor(R.color.transparentColor));