11

タッチ入力に基づいて線を描画するカスタム レイアウトがあります。線を描いていますが、ユーザーが画面に触れると線が消えて新しい線が描かれます。私がやりたいのは、新しい行を描き、前の行をそこに残すことです。これが私のコードです:

    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.util.AttributeSet;
    import android.view.MotionEvent;
    import android.view.View;

    public class DrawView extends View {
      Paint paint = new Paint();
      float startX;
      float startY;
      float stopX;
      float stopY;

      public DrawView(Context context, AttributeSet attrs) {
        super(context, attrs);

        paint.setAntiAlias(true);
        paint.setStrokeWidth(6f);
        paint.setColor(Color.BLACK);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeJoin(Paint.Join.ROUND);
      }

      @Override
      protected void onDraw(Canvas canvas) {
          canvas.drawLine(startX, startY, stopX, stopY, paint);
      }

      @Override
              public boolean onTouchEvent(MotionEvent event) {

       switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            startX = event.getX();
            startY = event.getY();
          return true;
        case MotionEvent.ACTION_MOVE:
          stopX = event.getX();
          stopY = event.getY();
         break;
        case MotionEvent.ACTION_UP:    
            stopX = event.getX();
            stopY = event.getY();
          break;
        default:
          return false;
        }
          Invalidate();
        return true;
      }
    } 
4

1 に答える 1