PathMeasure

PathMeasure是一个用来测量Path的类,主要有以下方法

构造方法

/**
 * 创建一个空的pathMeasure
 */
PathMeasure()
/**
 * 创建一个pathMeasure 并关联一个指定的path(path岁要创建完成)
 */
PathMeasure(Path path, boolean forceClosed)

公共方法

/**
 * 关联一个Path
 */
void setPath(Path path, boolean forceClosed)

/**
 * 是否闭合
 */
boolean isClosed()

/**
 * 获取path长度
 */
float getLength()

/**
 * 跳转到下一个轮廓
 */
boolean nextContour()

/**
 * 截取片段
 */
boolean getSegment(float startD, float stopD, Path dst, boolean startWithMoveTo)

/**
 * 获取指定长度的位置坐标及该店切线值tangle
 */
boolean getPosTan(float distance, float pos[], float tan[])

/**
 * 获取指定长度的位置坐标及该点Matrix(矩阵)
 */
boolean getMatrix(float distance, Matrix matrix, int flags)

PathMeasure的方法也不多,接下来我们逐一讲解。

1.构造函数

  • 无参构造函

       PathMeasure() 

       用这个构造

       用这个构造函数可创建一个空的 PathMeasure,但是使用之前需要先调用 setPath 方法来与 Path 进行关联。被关联的 Path 必须是已经创建好的,如果关联之后 Path 内容进行了更改,则需要使用 setPath 方法重新关联。

  • 有参数的构造函数

        PathMeasure(Path path, boolean forceClosed)

       用这个构造函数是创建一个 PathMeasure 并关联一个 Path 其实和创建一个空的 PathMeasure 后调用 setPath 进行关联效果是一样的,同样,被关联的 Path 也必须是已经创建好的,如果关联之后 Path 内容进行了更改,则需要使用 setPath 方法重新关联。

       该方法有两个参数,第一个参数自然就是被关联的 Path 了,第二个参数是用来确保 Path 闭合,如果设置为 true 则不论之前Path是否闭合,都会自动闭合该 Path(如果Path可以闭合的话)

注意:1.不论 forceClosed 设置为何种状态(true 或者 false), 都不会影响原有Path的状态,即 Path 与 PathMeasure 关联之后,之前的的 Path 不会有任何改变。2.forceClosed 的设置状态可能会影响测量结果,如果 Path 未闭合但在与 PathMeasure 关联的时候设置 forceClosed 为 true 时,测量结果可能会比 Path 实际长度稍长一点,获取到到是该 Path 闭合时的状态。

@Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Path path1 = new Path();
        path1.moveTo(195,195);
        path1.lineTo(405,195);
        path1.lineTo(405,405);
        path1.lineTo(195,405);
        canvas.drawPath(path1,p1);

        Path path2 = new
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值