Android 当用户在屏幕上移动手指时,在画布上绘制多个矩形
当用户触摸屏幕时,我使用下面的代码在画布上绘制矩形,其中的第一个坐标是用户第一次触摸屏幕的位置,它起作用了 问题:我只能画一个矩形,当我想画第二个矩形时,第一个就消失了(我想画多少就画多少) 第二个问题:如何用同样的方法画三角形和圆 守则:Android 当用户在屏幕上移动手指时,在画布上绘制多个矩形,android,Android,当用户触摸屏幕时,我使用下面的代码在画布上绘制矩形,其中的第一个坐标是用户第一次触摸屏幕的位置,它起作用了 问题:我只能画一个矩形,当我想画第二个矩形时,第一个就消失了(我想画多少就画多少) 第二个问题:如何用同样的方法画三角形和圆 守则: //In a custom view class int mStartX; int mStartY; int mEndX; int mEndY; Paint paint = new Paint(); //I did constructor and eve
//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;
}
当我想画第二张时,第一张就消失了
只是因为您调用了invalidate()命令
您可以创建一些draw(sprite)对象并将绘制坐标存储到自身中,然后在onDraw(Canvas Canvas)在invalidate()之后调用时绘制此对象集合
第二个问题:如何用同样的方法画三角形和圆
阅读以查找所需的命令
当我想画第二张时,第一张就消失了
只是因为您调用了invalidate()命令
您可以创建一些draw(sprite)对象并将绘制坐标存储到自身中,然后在onDraw(Canvas Canvas)在invalidate()之后调用时绘制此对象集合
第二个问题:如何用同样的方法画三角形和圆
阅读以查找所需的命令