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

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);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值