如何在自定义视图中绘制Android中的透明Rect(扩展视图)?

时间:2012-11-21 22:04:49

标签: android pixel transparent

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

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

1 个答案:

答案 0 :(得分:2)

RoboDemo中,我使用了这个:

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