美文网首页
Draw学习(2)

Draw学习(2)

作者: 我叫谦大宝 | 来源:发表于2016-08-23 17:00 被阅读0次

    Canvas类里面有一个方法为canvas.drawPath方法,这个方法就是用来绘制我们的自定义Path对象。Path对象很有用,我们可以绘制一些特殊的动画效果,文字吸附效果等等。所以我们需要来学习下Path对象的使用。

    Path类,有两个构造函数,一个无参构造函数Path()创建一个空的path,一个是带参构造函数Path(Path src)创建一个非空的带有src的Path;

    成员函数:

    path.addArc(RectF oval,float startAngle,float sweepAngle) 画弧线 stratAngle是只开始的角度,X轴正方向为0度,sweepAngle是持续的角度;

    path.addPath(Path src,float x,float y);画一个src的Path对象,x是起始横坐标,y是起始纵坐标。

    path.addOval(RectF oval,Direction dir)画圆,Direction有两类,Path.Direction.CW(顺时针画) Path.Direction.CCW(逆时针画);

    path.addRect(RectF rect,Direction dir)矩形路径;

    path.moveTo(float x,float y); x y是起始移动点的横坐标和纵坐标,并不画,只是将画笔移动到x y坐标

    path.lineTo(float x,float y); 用于直线绘画,默认从(0,0)绘画到(x,y)

    path.quadTo(float x1,float y1,float x2,float y2);用于绘制圆滑的曲线,既贝塞尔曲线,(x1,y1)为控制点,(x2,y2)为结束点。(贝塞尔曲线的形成,就比如我们把一条橡皮筋拉直,橡皮筋的头尾部对应起点和终点,然后从拉直的橡皮筋中选择任意一点(除头尾对应的点外)扯动橡皮筋形成的弯曲形状,而那个扯动橡皮筋的点就是控制点)

    path.cubicTo(float x1,float y1,float x2,float y2,float x3,float y3)也是用于绘制贝塞尔曲线。(x1,y1)为控制点,(x2,y2)为控制点,(x3,y3)为结束点。比quadTo(多了一个控制点) 如要画和quadTo一样的则将第一个控制点写成起始位置即可。

    path.arcTo(ovalRectF, startAngle, sweepAngle),ovalRectF为椭圆的矩形,startAngle为开始角度,sweepAngle为结束角度。

    rMoveTo,rlineTo,rQuadTo,rCubicTo方法不带r的方法是基于原点坐标系(偏移量),带r的不是基于远点坐标,是基于当前坐标的(偏移量)

    path.close(),闭合,曲线绘制完成后,使用该方法可以得到一个闭合的曲线。

    path.setLastPoint(float x,float y) 重置最后一个点(x,y)的坐标。

    相关文章

      网友评论

          本文标题:Draw学习(2)

          本文链接:https://www.haomeiwen.com/subject/bscnsttx.html