Android画布剪辑使用路径的掩码

时间:2015-11-18 12:52:33

标签: android android-canvas

我需要画这个:

result

并且: enter image description here

我可以制作物体并使用x y线和长度+角度(矢量)从点旋转吗?

但我无法理解如何使用Path制作画布的剪辑蒙版。

red.setColor(0xff033cd0);
        red.setStyle(Paint.Style.FILL);
        path.reset();
        path = new Path();
        path.reset();
        path.moveTo(boxWTstopX, boxWTstartY);
        path.lineTo(boxWTstartX, boxWTstartY);
       // path.moveTo(point2_returned.x, point2_returned.y);
        path.lineTo(boxWTstartX, boxWTstopY);
        path.lineTo(boxWTstopX, boxWTstartY);
        //path.moveTo(point3_returned.x, point3_returned.y);
       // path.lineTo(point1_returned.x, point1_returned.y);
        path.close();

        //canvas.drawPath(path, red);
        canvas.clipPath(path);

但是之后我在Retrangle地区画画......我是怎么做到的?我不知道。

P.S

我不知道为什么我不能用长度为100和宽度为200的物体重新制作而不是用绳子打印它!它将比2点更“友好”......是否可行?

也许有办法制作对象(包含:路径+ rects +等)而不是从x y cords打印它?

1 个答案:

答案 0 :(得分:0)

  

我可以制作物体,并用x y线和长度+从点旋转   角度(矢量)?

嗯,你可以。但是,不是旋转对象,而是可以以增量旋转画布然后绘制。所以你需要做的是使用canvas.rotate()。你的要求听起来很像我正在制作的绘制Meter guage指针。你可以参考:https://stackoverflow.com/a/33606134/4747587。这将通过旋转canvas来了解如何绘制。

  

但我无法理解如何使用Path制作画布的剪辑蒙版。

您使用clipPath执行某种屏蔽。你如何做到这一点?好吧,请参考:How to Clip a Star in android ? But the appearance of the star is clear。问题中的代码将告诉您如何使用clipPath。但你不能得到ANTI-ALIAS。如果您需要,请完成答案以执行Bitmap Masking