Android 单击+双击+短按+长按 逻辑

ACTION_DOWN事件

->mPrivateHandler.sendEmptyMessageDelayed(SWITCH_TO_SHORTPRESS, TAP_TIMEOUT)

       发延迟处理的消息SWITCH_TO_SHORTPRESS (短按) 计时

->mPrivateHandler.sendEmptyMessageDelayed(SWITCH_TO_LONGPRESS, LONG_PRESS_TIMEOUT)

       发延迟处理的消息SWITCH_TO_LONGPRESS (长按) 计时


ACTION_UP事件

(1)ACTION_UP SWITCH_TO_SHORTPRESS SWITCH_TO_LONGPRESS (单击/双击)发生在SWITCH_TO_SHORTPRESS和SWITCH_TO_LONGPRESS处理之前 (击_1)

       ->清除mPrivateHandler中SWITCH_TO_SHORTPRESS和SWITCH_TO_LONGPRESS消息

       ->mPrivateHandler.sendEmptyMessageDelayed(RELEASE_SINGLE_TAP, getDoubleTapDelay())

             发延迟处理的消息RELEASE_SINGLE_TAP (二次计时)

       ->(1)DoubleTapDelay < ACTION_DOWN 第一次ACTION_DOWN+ACTION_UP之后的getDoubleTapDelay()时间内没有ACTION_DOWN

                 ->处理RELEASE_SINGLE_TAP

                 ->doShortPress()(短按)

       ->(2)ACTION_DOWN < DoubleTapDelay第一次ACTION_DOWN+ACTION_UP之后的getDoubleTapDelay()时间内有ACTION_DOWN

                 ->清除RELEASE_SINGLE_TAP ,进TOUCH_DOUBLE_TAP_MODE模式 

                 ->发延迟处理消息SWITCH_TO_SHORTPRESS +发延迟处理消息SWITCH_TO_LONGPRESS

                 ->(1)ACTION_UP<SWITCH_TO_SHORTPRESS再次发生ACTION_UP事件 (_2)

                           ->清除mPrivateHandler中SWITCH_TO_SHORTPRESS和SWITCH_TO_LONGPRESS消息

                           ->doDoubleTap() (双击)

                 ->(2)SWITCH_TO_SHORTPRESS < ACTION_UP < SWITCH_TO_LONGPRESS

(2) SWITCH_TO_SHORTPRESS <ACTION_UP SWITCH_TO_LONGPRESS (短按) 

       ->处理SWITCH_TO_SHORTPRESS

       ->清除mPrivateHandler中SWITCH_TO_LONGPRESS消息

       ->doShortPress()(短按)


(3) SWITCH_TO_SHORTPRESS SWITCH_TO_LONGPRESS ACTION_UP (长按)发生在SWITCH_TO_SHORTPRESS和SWITCH_TO_LONGPRESS处理之后 (长按模式)

期间mPrivateHandler会处理SWITCH_TO_SHORTPRESS和SWITCH_TO_LONGPRESS消息

       ->处理SWITCH_TO_SHORTPRESS

       ->处理SWITCH_TO_LONGPRESS (长按)




  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值