Я использовал приведенный ниже код, чтобы нарисовать прямоугольник на холсте, когда пользователь коснулся экрана, где первые координаты, где пользователь сначала касается экрана, он работал.Рисование более одного прямоугольника на холсте, когда пользователь перемещает палец на экране
проблема: я могу нарисовать только один прямоугольник, когда я хочу нарисовать второй, первый исчезает (я хочу рисовать столько, сколько хочу).
вторая проблема: как рисовать треугольник и круг используя тот же метод?
код:
//In a custom view class
int mStartX;
int mStartY;
int mEndX;
int mEndY;
Paint paint = new Paint();
//I did constructor and everything.........
//Drawing the rectangle in on draw
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawRect(mStartX, mStartY, mEndX, mEndY, paint);
}
//updating the coordinate variables on touch
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
mStartX = (int) event.getX();
mStartY = (int) event.getY();
break;
case MotionEvent.ACTION_MOVE:
mEndX = (int) event.getX();
mEndY = (int) event.getY();
invalidate();
break;
case MotionEvent.ACTION_UP:
mEndX = (int) event.getX();
mEndY = (int) event.getY();
invalidate();
break;
default:
return false;
break;
}
return true;
}