首页 文章

Android动作事件

提问于
浏览
0

我正在尝试android运动事件 . 但是,我不知道为什么它不能去> case MotionEvent.ACTION_MOVE:

这是我的代码 .

@Override
public boolean onTouch(View v, MotionEvent event) {

    int action = event.getAction();
    switch (action){
        case MotionEvent.ACTION_DOWN:

            startX = (int)event.getX();
            startY = (int)event.getY();
            selecting=false;
            break;
        case MotionEvent.ACTION_MOVE:
            selecting=true;
            break;
        case MotionEvent.ACTION_UP:
            if(selecting){
                endX = (int)event.getX();
                endY = (int)event.getY();
                selected=true;
            }
            selecting=false;
            break;

    }
}

无论我如何滑动和触摸,即使我在MotionEvent.ACTION_UP中移除if(选择)条件,它总是显示相同的输出 .

start:{498.0,365.0}结束:{0.0,0.0}选择:false selected:false

我改成之后

public boolean onTouchEvent(MotionEvent事件)

一切正常 . 任何人都可以向我解释为什么会这样?

如果可能的话,帮我解决这个问题 . How to get the actual point when I touch on screen?

1 回答

  • 1

    要获取以下MotionEvent,必须在 onTouchEvent 方法中返回 true .

    source

相关问题