【问题标题】:Android: Trying to draw multiple paths, but getting one long path insteadAndroid:尝试绘制多条路径,但得到一条长路径
【发布时间】:2013-09-28 21:29:43
【问题描述】:

毫无疑问,我在做一些愚蠢的事情,但我似乎无法发现它。我正在尝试根据用户触摸绘制路径。捕获这些单独触摸的代码是:

public boolean onTouch(View view, MotionEvent event) {
    float x = event.getX();
    float y = event.getY();

    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            // The user is starting a new path
            Path path = new Path();
            paths.push(path);
            path.moveTo(x,y);
            path.lineTo(x,y);
            break;
        case MotionEvent.ACTION_MOVE:
            // The user is drawing on the current path
            path = paths.getLast();
            path.quadTo(x,y, (lastX + x)/2f, (lastY + y)/2f);
            break;
    }

    lastX = x;
    lastY = y;

    invalidate();
    return true;
}

然后画线:

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    ListIterator<Path> iterator = paths.listIterator();
    while (iterator.hasNext()) {
        Path path = iterator.next();
        canvas.drawPath(path, paint);
    }
}

问题是,当我开始绘制第二条(或第 n 条)路径时,代码会在最后一条路径的端点和当前路径的开头之间添加一条线。有什么建议吗?

谢谢

【问题讨论】:

    标签: android path drawing android-canvas


    【解决方案1】:

    我创建了一个 DrawCanvas 应用程序。你可以下载它here 并检查它是如何工作的。

    【讨论】:

      猜你喜欢
      • 2012-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      • 1970-01-01
      相关资源
      最近更新 更多