您的位置:首页 > 移动开发 > Android开发

在Android中,如何通过onTouchEvent实现Double Click,判断为双击事件

2013-10-30 15:39 1071 查看

How to catch double tap events in Android using OnTouchListener? double click event in android

如何通过onTouchEvent实现Double Click,判断为双击事件  

private final int DOUBLE_TAP_TIMEOUT = 200;
private MotionEvent mCurrentDownEvent;
private MotionEvent mPreviousUpEvent;

OnTouchListener mTouchListener = new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (mPreviousUpEvent != null
&& mCurrentDownEvent != null
&& isConsideredDoubleTap(mCurrentDownEvent,
mPreviousUpEvent, event)) {
Log.e(TAG, "Double click=============");
}
mCurrentDownEvent = MotionEvent.obtain(event);
} else if (event.getAction() == MotionEvent.ACTION_UP) {
mPreviousUpEvent = MotionEvent.obtain(event);
}
return true;
}
};

private boolean isConsideredDoubleTap(MotionEvent firstDown,
MotionEvent firstUp, MotionEvent secondDown) {
if (secondDown.getEventTime() - firstUp.getEventTime() > DOUBLE_TAP_TIMEOUT) {
return false;
}
int deltaX = (int) firstUp.getX() - (int) secondDown.getX();
int deltaY = (int) firstUp.getY() - (int) secondDown.getY();
return deltaX * deltaX + deltaY * deltaY < 10000;
}


再通过View设置Touch监听

view.setOnTouchListener(mTouchListener);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐