Android Path相关APIs

(为了更好的记忆,用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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值