首页 > 其他 > 详细

canvas绘制路径

时间:2020-04-18 14:34:07      阅读:43      评论:0      收藏:0      [点我收藏+]

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)

canvas绘制路径

原文:https://www.cnblogs.com/hugeba/p/12725016.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!