检查MotionEvent.ACTION_UP是否超出imageview

时间:2013-09-16 18:51:24

标签: java android ontouchlistener motionevent

用户将触摸图像,如果他将手指放在该图像中是非常重要的

我尝试编写onTouchListner(),之后使用swich case,但我不知道如何继续

image.setOnTouchListener(new OnTouchListener() {

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

                switch (event.getAction()) {
                    case MotionEvent.ACTION_UP:
                        break;
                    case MotionEvent.ACTION_DOWN:
                        break;
                    case MotionEvent.ACTION_MOVE:
                        break;
                }

                return true;
            }

        });

提前谢谢

2 个答案:

答案 0 :(得分:5)

我通过link找到了答案,但我将其更改为:

private Rect rect;    // Variable rect to hold the bounds of the view

public boolean onTouch(View v, MotionEvent event) {
    switch (event.getAction()) {
        case MotionEvent.ACTION_UP:
            if (!rect.contains(v.getLeft() + (int) event.getX(), v.getTop() + (int) event.getY())) {
                // User moved outside bounds
            }
            break;
        case MotionEvent.ACTION_DOWN:
            rect = new Rect(v.getLeft(), v.getTop(), v.getRight(), v.getBottom());
            break;
    }
    return false;
}

答案 1 :(得分:1)

不要忘记MotionEvent.ACTION_CANCEL