网络测速全解析之一:自定义View基础知识(三)

一、Path的基本操作

速查表~

作用 相关方法 备注
移动起点 moveTo 移动下一次操作的起点位置
设置终点 setLastPoint 重置当前path中最后一个点位置,如果在绘制之前调用,效果和moveTo相同
连接直线 lineTo 添加上一个点到当前点之间的直线到Path
闭合路径 close 连接第一个点连接到最后一个点,形成一个闭合区域
添加内容 addRect, addRoundRect, addOval, addCircle, addPath, addArc, arcTo 添加(矩形, 圆角矩形, 椭圆, 圆, 路径, 圆弧) 到当前Path (注意addArc和arcTo的区别)
是否为空 isEmpty 判断Path是否为空
是否为矩形 isRect 判断path是否是一个矩形
替换路径 set 用新的路径替换到当前路径所有内容
偏移路径 offset 对当前路径之前的操作进行偏移(不会影响之后的操作)
贝塞尔曲线 quadTo, cubicTo 分别为二次和三次贝塞尔曲线的方法
rXxx方法 rMoveTo, rLineTo, rQuadTo, rCubicTo 不带r的方法是基于原点的坐标系(偏移量), rXxx方法是基于当前点坐标系(偏移量)
填充模式 setFillType, getFillType, isInverseFillType, toggleInverseFillType 设置,获取,判断和切换填充模式
提示方法 incReserve 提示Path还有多少个点等待加入(这个方法貌似会让Path优化存储结构)
布尔操作(API19) op 对两个Path进行布尔运算(即取交集、并集等操作)
计算边界 computeBounds 计算Path的边界
重置路径 reset, rewind

清除Path中的内容

reset不保留内部数据结构,但会保留FillType.

rewind会保留内部的数据结构,但不保留FillType

矩阵操作 transform 矩阵变换

Path在2D绘图中非常重要~

第1组: moveTo、 setLastPoint、 lineTo 和 close

网络测速全解析之一:自定义View基础知识(三)

网络测速全解析之一:自定义View基础知识(三)

网络测速全解析之一:自定义View基础知识(三)

第2组: addXxx与arcTo

网络测速全解析之一:自定义View基础知识(三)

这里要注意绘制方向CW和CCW的影响和区别。(细节:path存储线段是通过点的方式的原因:解析和存储方便)

网络测速全解析之一:自定义View基础知识(三)

网络测速全解析之一:自定义View基础知识(三)

参数表:

参数 摘要
oval 圆弧的外切矩形。
startAngle 开始角度
sweepAngle 扫过角度(-360 <= sweepAngle <360)
forceMoveTo 是否强制使用MoveTo

PS: sweepAngle取值范围是 [-360, 360),不包括360,当 >= 360 或者 < -360 时将不会绘制任何内容, 对于360,你可以用一个接近的值替代,例如: 359.99。

addArc和arcTo的区别:addArc只是一个圆弧,不连接两个端点;arcTo要连接两个端点。

 

第3组:isEmpty、 isRect、isConvex、 set 和 offset