Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何允许画布上存在多个onTouch事件?_Android_Android Canvas - Fatal编程技术网

Android 如何允许画布上存在多个onTouch事件?

Android 如何允许画布上存在多个onTouch事件?,android,android-canvas,Android,Android Canvas,我有下面的应用程序,可以在触摸屏上画一个圆圈。第二次触摸屏幕时,第一个触摸圈被移除,并在第二次触摸的位置创建一个新的触摸圈。如何允许多个圆圈在触摸屏幕时出现相同的次数?(即5个触摸事件=5个圆圈在同一画布上的触摸位置出现) 使用它返回触摸事件的指针索引 public class Lab12Activity extends Activity { Point pt = new Point(); @Override protected void onCreate(Bundle savedInstan

我有下面的应用程序,可以在触摸屏上画一个圆圈。第二次触摸屏幕时,第一个触摸圈被移除,并在第二次触摸的位置创建一个新的触摸圈。如何允许多个圆圈在触摸屏幕时出现相同的次数?(即5个触摸事件=5个圆圈在同一画布上的触摸位置出现)

使用它返回触摸事件的指针索引

public class Lab12Activity extends Activity {
Point pt = new Point();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(new DrawView(this));
}

class DrawView extends View implements View.OnTouchListener {

    public DrawView(Context context) {
        super(context);
        this.setOnTouchListener(this);
    }
    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawColor(Color.GRAY);
        Paint paint = new Paint();
        paint.setColor(Color.WHITE);
        canvas.drawCircle(pt.x, pt.y, 15, paint);
        paint.setColor(Color.BLUE);
        canvas.drawRect(0, 0, 225, 150, paint);

        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(1);
        paint.setColor(Color.WHITE);
        paint.setTextSize(30);
        canvas.drawText("Clear", 75, 75, paint);
        canvas .drawText("Tap to add Circles", 300, 75, paint);


    }
    public boolean onTouch(View view, MotionEvent event) {


        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            pt.x = (int) event.getX();
            pt.y = (int) event.getY();

            invalidate();


        }
        return true;

    }
}



}