Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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
Java 安卓-创建一个新的椭圆类,每个手指移动x和y坐标_Java_Android_Motionevent - Fatal编程技术网

Java 安卓-创建一个新的椭圆类,每个手指移动x和y坐标

Java 安卓-创建一个新的椭圆类,每个手指移动x和y坐标,java,android,motionevent,Java,Android,Motionevent,我想这样做: 当我触摸屏幕时,我想创建一个新的椭圆形到被触摸的x,y坐标 当我在屏幕上拖动手指时,我希望在拖动手指时,在每个x,y坐标处创建新的椭圆。 当我触摸并用手指按住屏幕长按时,我想删除我创建的每个椭圆形 我可以做第一步,但我不知道如何做第二步。三, 这是我试过的代码: public class BouncingBallView extends View implements OnGestureListener{ private List<Oval> ovals = new

我想这样做:

当我触摸屏幕时,我想创建一个新的椭圆形到被触摸的x,y坐标 当我在屏幕上拖动手指时,我希望在拖动手指时,在每个x,y坐标处创建新的椭圆。 当我触摸并用手指按住屏幕长按时,我想删除我创建的每个椭圆形 我可以做第一步,但我不知道如何做第二步。三,

这是我试过的代码:

public class BouncingBallView extends View implements OnGestureListener{

private List<Oval> ovals = new ArrayList<Oval>();
private GestureDetector gestureScanner;

public BouncingBallView(Context context) {
    super(context);
    setBackgroundColor(Color.WHITE);
    gestureScanner = new GestureDetector(this);
}

@Override
protected void onDraw(Canvas canvas) {
    for(Oval o: ovals) { //prints every oval
        o.graph(canvas);
    } 
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    //1. this works:
    float x = event.getX();
    float y = event.getY();
    Oval oval = new Oval(x, y, this);
    ovals.add(oval);
    invalidate();
    return super.onTouchEvent(event);
}

@Override
public boolean onDown(MotionEvent arg0) {
    return false;
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float x,
        float y) {
    //2. this doesn't work:
    Oval oval = new Oval(x, y, this);
    ovals.add(oval);
    invalidate();
    return true;
}

@Override
public void onLongPress(MotionEvent arg0) {
    //3. this doesn't work:
    ovals.clear();
    invalidate();
}

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float x,
        float y) {
    //2. this doesn't work:
    Oval oval = new Oval(x, y, this);
    ovals.add(oval);
    invalidate();
    return true;
}

@Override
public void onShowPress(MotionEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public boolean onSingleTapUp(MotionEvent arg0) {
    // TODO Auto-generated method stub
    return false;
}
}

你可以看到,我没有使用gestureScanner参数,也许我应该,但我不知道在哪里以及如何使用

请帮帮我!谢谢