This commit is contained in:
sloop
2016-05-29 03:20:07 +08:00
parent 7771afd343
commit 23e43f9866

View File

@@ -142,6 +142,46 @@ startWithMoveTo | 起始点是否使用 moveTo | 用于保证截取
> 矩形边长400dp起始点在左上角 > 矩形边长400dp起始点在左上角
![](http://ww2.sinaimg.cn/large/005Xtdi2jw1f4bohcxzhqj308c0etwej.jpg)
代码:
``` java
canvas.translate(mViewWidth / 2, mViewHeight / 2); // 平移坐标系
Path path = new Path(); // 创建Path并添加了一个矩形
path.addRect(-200, -200, 200, 200, Path.Direction.CW);
Path dst = new Path(); // 创建用于存储截取后内容的 Path
PathMeasure measure = new PathMeasure(path, false); // 将 Path 与 PathMeasure 关联
// 截取一部分存入dst中并使用 moveTo 保持截取得到的 Path 第一个点的位置不变
measure.getSegment(200, 600, dst, true);
canvas.drawPath(dst, mDeafultPaint); // 绘制 dst
```
从上图可以看到我们成功到将需要到片段截取了出来,然而当 dst 中有内容时会怎样呢?
``` java
```
从上面的示例可以得到结论:**被截取的 Path 片段会添加到 dst 中,而不是替换 dst 中到内容。**
前面两个例子中 startWithMoveTo 均为 true 如果设置为false会怎样呢?
从该示例我们又可以得到一条结论:**如果 startWithMoveTo 为 true, 则被截取出来到Path片段保持原状如果 startWithMoveTo 为 false则会将截取出来的 Path 片段的起始点移动到 dst 的最后一个点,以保证 dst 的连续性。**
从而我们可以用以下规则来判断 startWithMoveTo 的取值:
取值 | 主要功用
------|------------------
true | 保证截取得到的 Path 片段不会发生形变
false | 保证存储截取片段的 Path(dst) 的连续性
## 总结 ## 总结