0

如何绘制一个基本上在画布上创建一个洞的矩形?例如,假设我有一个为像素艺术设计的图像编辑应用程序。用户触摸屏幕的一个区域,并绘制一个紫色矩形。糟糕,他把矩形放错了位置。用户需要使这个紫色方块再次变为透明,以便他可以在正确的位置重新绘制它。

我该怎么做呢?我使用过 PorterDuff.Mode.Clear、myPaintColor.setColor(Color.TRANSPARENT) 等,但都给出了相同的结果。一个丑陋的黑色方块,它应该是透明的。我的画布一开始是透明的,可以通过 getDrawingCache 保存为透明的 .PNG,所以我知道画布一开始是透明的。但是我如何帮助绘制紫色方块的用户使他的画布再次透明?谢谢。我整天都在试图弄清楚这一点,阅读了所有关于此的文档,但我无法弄清楚。

这是我所拥有的:

            Rect square = new Rect();
            Paint drawColor = new Paint();
            //drawColor.setColor(UserColor.get(i));
            drawColor.setXfermode(new PorterDuffXfermode(Mode.CLEAR));
            square.set(CanvasFractionWidth * UserX.get(i), CanvasFractionHeight * UserY.get(i), (CanvasFractionWidth * UserX.get(i)) + (CanvasFractionWidth), (CanvasFractionHeight * UserY.get(i)) + CanvasFractionHeight);
            canvas.drawRect(square, drawColor);
4

1 回答 1

2

RoboDemo中,我使用这个:

        Paint p = new Paint();
        p.setXfermode( new PorterDuffXfermode( Mode.CLEAR ) );
于 2012-11-21T22:28:57.540 回答