1

指の動きを使ってAndroidキャンバスに閉じたパスを描いています。これがそのための私のコードです

switch (event.getAction())
            {
                case MotionEvent.ACTION_DOWN:
                    startPoint = new PointF(event.getX(), event.getY());
                    endPoint = new PointF();
                    hotSpot = new HotSpots();
                    endPoint.x = event.getX();
                    endPoint.y = event.getY();
                    wallpath = new Path();
                    wallpath.moveTo(endPoint.x,endPoint.y);
                    break;
                case MotionEvent.ACTION_MOVE:
                    PointF point = new PointF(event.getX(),event.getY());
                    endPoint.x = event.getX();
                    endPoint.y = event.getY();
                invalidate();
                    break;
                case MotionEvent.ACTION_UP:

                    endPoint.x = startPoint.x;//event.getX();
                     isFinished = true;                    
                    break;
                default:
                    break;
            }

    @Override
    protected void onDraw(Canvas canvas)
    {
        wallpath.lineTo(endPoint.x, endPoint.y);
            canvas.drawPath(wallpath, paint);

       if(isFinished)
        {
            wallpath.lineTo(endPoint.x, endPoint.y);
            canvas.drawPath(wallpath, paint);
        }
    }

新しいタッチごとに、新しいパスを作成しています。しかし、新しいパスが描画されると、古いパスは消去されます。各パスに異なる塗りつぶし色を使用して、キャンバスに複数のパスを描画するにはどうすればよいですか。

4

1 に答える 1