1

私が愚かなことをしていることは間違いありませんが、それを見つけることができないようです. ユーザーのタッチに基づいてパスを描画しようとしています。これらの個々のタッチをキャプチャするコードは次のとおりです。

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);
    }
}

問題は、2 番目 (または n 番目) のパスの描画を開始すると、コードが最後のエンドポイントと現在のパスの先頭の間に線を追加することです。助言がありますか?

ありがとう

4

1 に答える 1