1.前言
Path是Android中用来封装几何路径的一个类,Path主要用于绘制复杂的图形轮廓,比如折线,圆弧以及各种复杂图案。
2.实现分析
Android为我们提供的Path类是一个非常有用的类,它可以预先在View上将N个点按照顺序,将这N个点依次连接成一条“路径”,然后使用Canvas的drawPath(Path path, Paint paint)方法即可沿着路径进行绘制,事实上,Android不仅仅为我们提供了路径绘制的方法还提供了PathEffect来添加绘制效果。
(1)Path类
lineTo(float x, float y):以上一个点为起点到自定义点为终点画直线。参数一和参数二分别表示自定义点的横坐标和纵坐标(若没有设置起始点时,默认的起始点是(0, 0))
moveTo(float x, float y):移动起始点的坐标至(x, y)。参数一和参数二分别表示将起始点移动到的坐标
quadTo(float x1, float y1, float x2, float y2):靠近控制点,从起点到终点画一条二次贝塞尔曲线(起点默认为Canvas的左上角)。参数一和参数二表示控制点的坐标,参数三和参数四表示终点的坐标
cubicTo(float x1, float y1, float x2, float y2, float x3, float y3):靠近控制点,从起点到终点画一条三次贝塞尔曲线(起点默认为Canvas的左上角)。参数一和参数二表示第一个控制点的坐标,参数三和参数四表示第二个控制点的坐标,参数五和参数六表示终点的坐标
rLineTo(float dx, float dy):以当前的点做为基点,以直线的形式连接到 (currentX + dx , currentY + dy)。参数一和参数二分别表示沿x轴和y轴移动的距离
rMoveTo(float dx, float dy):移动前一个点。参数一和参数二分别表示将前一个点沿x轴移动的距离和沿y轴移动的距离
rQuadTo(float dx1, float dy1, float dx2, float dy2):靠近控制点,从起点到终点画一条二次贝塞尔曲线(若有上一个点起点为上一个点,若没有上一个点起点默认为Canvas的左上角)。
addArc(RectF oval, float startAngle, float sweepAngle):添加一个指定的弧路径。参数一表示RectF的对象表示指定的矩形轮廓,参数二表示起始角度,参数三表示顺时针画弧的角度
addPath(Path src) :将传入的路径添加到当前路径。参数一表示添加到当前路径的路径
addCircle(float x, float y, float radius, Path.Direction dir):添加一个指定的圆路径。参数一和参数二分别表示圆心的横坐标和纵坐标,参数三表示圆的半径,参数四表示圆的风格
addOval(RectF oval, Path.Direction dir):添加一个指定的椭圆路径。参数一表示RectF的对象表示指定的矩形轮廓,参数二表示椭圆的风格
addRect(float left, float top, float right, float bottom, Path.Direction dir) :添加一个指定的矩形路径。参数一和参数二表示矩形左上角的坐标,参数三和参数四表示矩形右下角的坐标,参数五表示矩形的风格
这些方法和addArc有很明显的区别,就是多了一个Path.Direction参数,其他呢都大同小异,除此之外