如何在我的自定义视图(扩展视图)上在 Android 中绘制透明矩形



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

我该怎么做?我使用过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);

在RoboDemo中,我使用这个:

        Paint p = new Paint();
        p.setXfermode( new PorterDuffXfermode( Mode.CLEAR ) );

最新更新