canvas中绘制路径利用:
Paint paint=new Paint();
...基本样式
Path path = new Path();
...绘图路径
void drawPath (Path path, Paint paint)
直线路径
void moveTo (float x1, float y1):直线的开始点;即将直线路径的绘制点定在(x1,y1)的位置;
void lineTo (float x2, float y2):直线的结束点,又是下一次绘制直线路径的开始点;
lineTo()可以一直用;
void close ():如果连续画了几条直线,但没有形成闭环,调用Close()会将路径首尾点连接起来,形成闭环;
矩形路径
void addRect (float left, float top, float right, float bottom, Path.Direction dir)
void addRect (RectF rect, Path.Direction dir)
Rect:
Rect、RectF都表示矩形类,他由4个坐标(left,top,right,bottom) 来组成一个矩形,在 android中很多地方都用到矩形,用来确定位置这是android中常用的手法
(0,0,100,100)表示在原点开始组成一个长宽为100,100的矩形
(10,30,110,100)表示组成一个长为(110-10)=90,宽为(100-30)=70 的矩形
Path.Direction有两个值:
Path.Direction.CCW:是counter-clockwise缩写,指创建逆时针方向的矩形路径;
Path.Direction.CW:是clockwise的缩写,指创建顺时针方向的矩形路径;
文字是可以依据路径排版的,那文字的行走方向就是依据路径的生成方向;
关键代码 ‘canvas.drawTextOnPath(text, CCWRectpath, 0, 18, paint);//逆时针生成‘
drawTextOnPath (String text,Path ath,float hOffset,float vOffset,Pating paint)方法,
该方法可以沿着Path绘制文本 其中hOffset参数指定水平偏移 vOffset参数指定垂直偏移
圆角矩形路径
void addRoundRect (RectF rect, float[] radii, Path.Direction dir)
void addRoundRect (RectF rect, float rx, float ry, Path.Direction dir)
这里有两个构造函数,部分参数说明如下:
第一个构造函数:可以定制每个角的圆角大小:
float[] radii:必须传入8个数值,分四组,分别对应每个角所使用的椭圆的横轴半径和纵轴半径,
如{x1,y1,x2,y2,x3,y3,x4,y4},其中,x1,y1对应第一个角的(左上角)用来产生圆角的椭圆的横轴半径和纵轴半径,其它类推……
第二个构造函数:只能构建统一圆角大小
float rx:所产生圆角的椭圆的横轴半径;
float ry:所产生圆角的椭圆的纵轴半径;
圆形路径
void addCircle (float x, float y, float radius, Path.Direction dir)
参数说明:
float x:圆心X轴坐标
float y:圆心Y轴坐标
float radius:圆半径
椭圆路径
void addOval (RectF oval, Path.Direction dir)
参数说明:
RectF oval:生成椭圆所对应的矩形
Path.Direction :生成方式,与矩形一样,分为顺时针与逆时针,意义完全相同,不再重复
弧形路径
void addArc (RectF oval, float startAngle, float sweepAngle)
参数:
RectF oval:弧是椭圆的一部分,这个参数就是生成椭圆所对应的矩形;
float startAngle:开始的角度,X轴正方向为0度
float sweepAngel:持续的度数;
线段轨迹---待补充
void quadTo (float x1, float y1, float x2, float y2)
原文:https://www.cnblogs.com/hugeba/p/12725016.html