Path路径的意思,任何图形都可以用它来表示,相比于Rect、Circle、Line等它非常灵活,下面介绍Path的相关API
Path.Direction:Path的方向,有两个值CCW、CW,CCW表示逆时针,CW表示顺时针
Path.FillType:Path的填充方式,有4个取值EVEN_ODD、WINDING、INVERSE_EVEN_ODD、INVERSE_WINDING
Path.Op:当两个的Path重合时该如何处理,有5个取值:
DIFFERENCE:从path1中减去path2
INTERSECT:取path1和path2重合的部分
REVERCE_DIFFERENCE:从path2中减去path1
UNION:联合path1和path2
XOR:取path1和path2不重合的部分
Path的函数
Path():构造函数,新建一个空的Path
Path(Path src):构造函数,新建一条和src一样的Path对象
void addArc(RectF oval,floatstartAngle,float sweepAngle):在当前path上添加一段弧;该弧由oval,startAngle,sweepAngle三者共同决定
void addCircle(float x,float y,float radius,Path.Direction dir):在当前path上添加一个圆;(x,y)为圆心,radius为圆半径,dir为圆的方向
void addOval(RectF oval,Path.Direction dir):在当前path上添加一个椭圆
void addPath(Path src,float x,float y):将src平移(x,y)后添加到当前path上
void addPath(Path src):将src添加到当前path上
void addPath(Path src,Matrix m):将src经过矩阵m变换后添加到当前path上
void addRect(float left,float top,float right,float bottom,Path.Direction dir):在当前path上添加矩形
void addRect(Rect src,Path.Direction dir):同上
void addRoundRect(RectF src,float[] dii,Path.Direction dir):将圆角矩形添加到当前path,src表示矩形区域,dii={x1,y1,x2,y2,x3,y3,x4,y4}用xi,yi表示第i个角的弧度
void addRoundRect(RectF src,float rx,float ry,Path.Direction dir):将圆角矩形添加当档案path中,每个角的弧度都有rx,ry决定
void arcTo(RectF src,int startAngle,int sweepAngle,boolean forceMoveTo):将弧src添加到当前path中,forceMoveTo决定当前path最后的点到src的起始点之间是否有连线
void arcTo(RectF src,int startAngle,int sweepAngle):forceMoveTo为false
void close():闭环的当前path
void computeBounds(RectF bounds,boolean exact):得到一个能容纳档案path的矩形并存入bounds中
Path.FillType getFillType():返回path的FillType
boolean isEmpty():path是否是空的
boolean isInverseFillType():path的FillType是否是Inverse类型的
boolean isRect(Rect src):如果path是一个矩形则返回true并储存到src中,若path不是矩形则返回false
void lineTo(float x,float y):添加一条从path的末尾点到(x,y)的线段
void moveTo(float x,float y):将(x,y)设置为新的起点
void offSet(float dx,float dy,Path dst):将当前path平移dx,dy,将平移后的path保存到dst中,若dst为null则将其存到档案path中
void offSet(float dx,float dy):dst为null的情况
boolean op(Path path1,Path path2,Path.op op):将path1和path2按照op的规定处理,将新得到的path存到当前path中
boolean op(Path path,Path.op op):将path与当前path按照op处理,将新得到path存到当前path中
void reset():清空path
void rewind():清空当前path,保存数据以便快速恢复
void setFillType(Path.FillType type):设置FillType
void setLastPoint(float x,float y):设置path的最后一个点为(x,y)
void transform(Matrix matrix,Path dst):用matrix变换当前path并存到dst中
void transform(Matrix matrix):用matrix改变当前path