如何在画布上实现填充路径对象?

时间:2017-07-05 16:19:11

标签: android canvas graphics

我在填充画布上绘制的路径时遇到问题。 我读了之前所有的问题

Paint red = new Paint();
red.setColor(Color.RED);
red.setStyle(Paint.Style.FILL_AND_STROKE);

应该是它的工作方式。然后我画了我的路径

Path p = new Path();
p.moveTo(100,100); //point1
p.lineTo(200,200);
p.moveTo(200,200); //point2
p.lineTo(100,200);
p.moveTo(100,200); //point3
p.lineTo(100,100);
p.close();

在我看来,这应该是一条封闭的道路。 在canvas.drawPath之后(p,red); 尽管样式为FILL_AND_STROKE,但绘制了三角形/路径但未填充。 我错了什么?

1 个答案:

答案 0 :(得分:1)

没有要填充的路径,因为您的路径由多行组成,但没有相干多边形。请参阅moveTo文档,其中包含:

  

将下一个轮廓的开头设置为点(x,y)。

所以通过调用moveTo,你只是画线。

仅使用lineTo(),其中"移动"到目标位置。并且您可以跳过上一个lineTo()到达原点,close()将自动执行此操作。

// create a triangle
Path p = new Path();
p.moveTo(100,100); //p1
p.lineTo(200,200); //p2
p.lineTo(100,200); //p3
p.close();