Android:Canvas drawPath方法绘制纯色背景而不是透明背景

时间:2012-12-19 19:08:00

标签: android graphics 2d

我刚开始使用Android图形并全面解决这个问题。我正在制作一个绘图应用程序,一旦我掌握了基础知识,我就会把它扩展到更酷的东西。

我正在尝试在现有图像(包含所有先前路径)上绘制路径,但是路径边界表示的矩形同时绘制为实心形状,覆盖背景图像的位。

我正在使用以下命令使我的画布无效并绘制所需的更新:

invalidate
(
    (int) (dirtyRect.left - HALF_STROKE_WIDTH),
    (int) (dirtyRect.top - HALF_STROKE_WIDTH),
    (int) (dirtyRect.right + HALF_STROKE_WIDTH),
    (int) (dirtyRect.bottom + HALF_STROKE_WIDTH)
);

在我的onDraw中,我得到了以下内容:

if (drawing.size() > 0) //if there are paths
{
    canvas.drawPath(drawing.get(drawing.size() - 1), paint); //draw the latest path
}

我可以在绘图中绘制所有路径(定义为路径对象的LinkedList),但这非常慢。我只是想在画布上绘制最新的路径,路径周围没有任何愚蠢的矩形。

我在调用drawPath之前尝试过canvas.drawColor(Color.TRANSPARENT),但它没有帮助。

请帮忙!

1 个答案:

答案 0 :(得分:0)

查看porterduff模式,它允许你混合