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