Android Path相关APIs

来源:互联网 发布:淘宝客网站建站 编辑:程序博客网 时间:2024/05/18 00:38

(为了更好的记忆,用blog写之,学习自扔物线,希望大家都能支持他)在自定义view的onDraw方法中,Path是一个十分有用的类,该类直译为路径,所以很明显,其可以用作画各种线路和图形。具体APIs为。

Path 方法第一类:直接描述路径。

第一组: addXxx() ——添加子图形

  • addCircle(float x, float y, float radius, Direction dir) 添加圆
    参数解释:x,y,radius分别是原的坐标点,半径,dir表示圆的路径方向,顺时针 CW,逆时针 CCW。
  • addOval(float left, float top, float right, float bottom, Direction dir) / addOval(RectF oval, Direction dir) 添加椭圆
    参数解释:left,top,right,buttom表示椭圆范围坐标
    ,dir和上面一样。addRect和addRoundRect和其参数类似
  • addRect(float left, float top, float right, float bottom, Direction dir) / addRect(RectF rect, Direction dir) 添加矩形
  • addRoundRect(RectF rect, float rx, float ry, Direction dir) / addRoundRect(float left, float top, float right, float bottom, float rx, float ry, Direction dir) / addRoundRect(RectF rect, float[] radii, Direction dir) / addRoundRect(float left, float top, float right, float bottom, float[] radii, Direction dir) 添加圆角矩形
  • addPath(Path path) 添加另一个 Path

第二组:xxxTo() ——画线(直线或曲线)

  • lineTo(float x, float y) / rLineTo(float x, float y) 画直线
    参数解释:x,y需要连接的终点的坐标 rLineTo表示相对当前坐标,即以当前坐标点为坐标系原点,x,y相对的值是对应在该坐标系得到的值。下面的几个r开头的方法类似。
  • quadTo(float x1, float y1, float x2, float y2) / rQuadTo(float dx1, float dy1, float dx2, float dy2) 画二次贝塞尔曲线
    参数解释:x1,y1控制点坐标,x2,y2终点坐标
  • cubicTo(float x1, float y1, float x2, float y2, float x3, float y3) / rCubicTo(float x1, float y1, float x2, float y2, float x3, float y3) 画三次贝塞尔曲线
    参数解释:x1,y1控制点1坐标,x2,y2控制点1坐标,x3,y3终点坐标
  • moveTo(float x, float y) / rMoveTo(float x, float y) 移动到目标位置
    参数解释:x,y目标坐标
  • arcTo(RectF oval, float startAngle, float sweepAngle, boolean forceMoveTo)
  • arcTo(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean forceMoveTo)
  • arcTo(RectF oval, float startAngle, float sweepAngle) 画弧形
    参数解释:startAngle,启始角度,x正方向为0度,顺时针,sweepAngle 弧形角度,forceMoveTo是否留下从上一点移过来的痕迹,true是留下,false不留下
  • addArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle) / addArc(RectF oval, float startAngle, float sweepAngle)
    参数解释:arcTo简化版,默认forceMoveTo为true
  • close() 封闭当前子图形

最后调用:canvas.drawPath(path, paint);

Path 方法第二类:辅助的设置或计算

  • Path.setFillType(Path.FillType ft) 设置填充方式
  • WINDING
  • EVEN_ODD
原创粉丝点击