Android动作事件

时间:2016-01-27 10:47:36

标签: android motionevent

我正在尝试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(选择)条件,它总是显示相同的输出。

  

开始:{498.0,365.0}
  结束:{0.0,0.0}
  选择:假
  选中:false

将其更改为

  

public boolean onTouchEvent(MotionEvent event)

一切都很好。任何人都可以向我解释为什么会发生这种情况?

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

1 个答案:

答案 0 :(得分:1)

要获得以下MotionEvents,您必须在true方法中返回onTouchEvent

source