Android网易课

Paint方法总结(四):Path的应用

2019-08-23  本文已影响0人  Fizzzzer

Paint方法总结(四):Path的应用

先对Path中的Api做一个简单的介绍

moveTo(float x,float y):将路径的绘制移动到指定的点,如果不调用该方法,则path的绘制起点默认是坐标原点

lineTo(float x,float y):路径轨迹为上一个点和当前指定点之间的连线

rLineTo(float x,float y):表示相对于上一个点的位移距离,与lineTo不同的是,lineTo是表示轨迹移动到指定的点,而rLineTo表示的是,轨迹移动到是相对于上一个而言的,如果当前点的位置在(100,100),如果调用rLineTo(50,50)后,当前点的位置是在(150,150)的。

close():表示路径轨迹是一个闭合的,即系统会自动将轨迹的最后一个点和起始点做一个连线,如果不调用则表示绘制的路径轨迹不闭合

addArc(float left,float top,float right,float bottom,float startAngle, float sweepAngle):添加一个扇形轨迹

关于这种添加还有很多方法,类似于addRect(... , Direction dir)添加一个矩形,addCircle(... ,Direction dir)添加一个圆形,addOval(... ,Direction dir)添加一个椭圆,前面的参数就是指定一些坐标点就不赘述了,后面的这个Direction是指的绘制方向,是个枚举值CW顺时针绘制,CCW逆时针绘制

mPath.arcTo(RectF oval, float startAngle, float sweepAngle, boolean forceMoveTo):追加一个扇形,当前面已经画好一个路径后,需要在画一个扇形,前面的参数跟之前介绍的一样,这里主要介绍forceMoveTo,这是一个boolean类型的参数,如果为true,表示强制移动到当前追加的地方,如果为false,则会将上一个图形的末尾点和追加的起点进行一个连线。效果参见下图

forceMoveTo.png

addPath(Path):添加一个Path

addRoundRect(RectF rect, float rx, float ry, Direction dir):添加一个圆角矩形

quadTo(float x1, float y1, float x2, float y2):绘制二阶贝塞尔曲线,x1y1为控制点坐标,x2y2为结束点坐标,在调用之前,需要调用moveTo()方法指定起始点,如果不调用,则默认起始点为坐标原点(0,0)

rQuadTo(float x1, float y1, float x2, float y2):绘制二阶贝塞尔曲线,这里出入的坐标是相对于起始点而言的。

cubicTo(float x1, float y1, float x2, float y2,float x3, float y3):绘制三阶贝塞尔曲线,x1y1为第一个控制点的坐标,x2y2为第二个控制点的坐标,x3y3为结束点的坐标,起始点的指定与二阶贝塞尔曲线一样。

rCubicTo(float x1, float y1, float x2, float y2,float x3, float y3):绘制三阶贝塞尔曲线,这里的坐标是相对于起始点而言的。

上一篇下一篇

猜你喜欢

热点阅读