繁体   English   中英

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

[英]How do I draw a transparent Rect in Android on my Custom View (extends View)?

如何绘制一个基本上在画布上创建一个洞的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);

RoboDemo中 ,我使用这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM