在Android上使用透明涂料绘图

时间:2015-01-16 11:19:35

标签: android canvas 2d draw paint

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

这是我Paint的代码:

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

2 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:4)

我发现使用

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>

我选择了&#34; 00ffffff&#34;但是我很确定&#34; 00000000&#34;也将工作,取决于你的情况。

最终代码如下:

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