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 (长按)

Android 单击+双击+短按+长按 逻辑相关推荐

  1. STM32独立按键实现单击双击长按功能

    目录 前言 一.按键功能定义 二.使用步骤 1.按键初始化 2.按键扫描函数(重点) 总结 前言 在使用STM32或其他单片机开发项目时,经常需要用到独立按键进行控制. 通常一个独立按键需要使用一个I ...

  2. 多功能按键设计——利用一个I/O口,接一个按键,实现3功能操作:单击 + 双击 + 长按

    看了一个晚上,结合了马潮老师的书,才搞懂这个程序,确实经典!原文: 题目:多功能按键设计.利用一个I/O口,接一个按键,实现3功能操作:单击 + 双击 + 长按. (amobbs.com 阿莫电子论坛 ...

  3. [Android开发] 从后台恢复前台界面需要输入密码的demo|监听Home短按长按锁屏

    一.效果图 二.实现原理 通过接收系统广播来判断home按键,广播Application全局,在接收到广播的时候在BaseActivity的onStop里面打开输入密码的对话框,再次回到界面就已经是显 ...

  4. Unity触摸屏幕 拖拽物体 旋转物体 放大缩小物体 单击 双击 长按

    Unity触摸屏幕 拖拽物体 旋转物体 放大缩小物体 单击 双击 长按 拖拽物体 using System.Collections; using System.Collections.Generic; ...

  5. Android 点击拍照,长按录像保存本地 结合camer2实现 前后摄像头切换,手机闪关灯,

    下面是对应的三个布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns ...

  6. 按键检测框架单击-双击-连按

    说明 本示例用的stm32 按键是接地有效 特别设置按键拉高 按键事件循环50ms一次调用 电路图 按键检测思路 按键按下检测:检测当前本状态是否和上一次状态一致,不一致消抖完成的情况下,当前电平和按 ...

  7. Android应用统计-使用时长及次数统计(一)

    关键字: 应用统计 Android源码 应用使用时长 应用使用次数 最近在做有关于应用统计有关的工作,主要是统计系统中客户端应用(非系统自带的那些基础应用,比如DownLoadManager),在每一 ...

  8. 鸿蒙TouchEvent已实现单击、连续、长按功能,安卓也可以模仿着原理实现(网上绝大多未实现不动长按),这个支持不动长按事件

    原创文章引用请注明出处,文章问题持续优化中. 以下的例子是模仿抖音的刷视频的单击播放.暂停,长按弹出框,连续点击是点赞的效果.连续点击视频时候,视频处于播放或者暂停是不会击穿事件导致视频播放或者暂停的 ...

  9. pc(电脑)用java通过adb操作android手机发短信及中文乱码解决

    最近想用java调用android手机的短信功能.已开始用一下方法实现: adb -s emulator-5554 shell am start -a android.intent.action.SE ...

最新文章

  1. 13篇文章,教你学会ES6知识点
  2. 运维 + 数据 + AI=企业数字化难题的应对之法?
  3. python开发环境anaconda_搭建Python开发环境,用Anaconda + PyQt + Pycharm
  4. windows 生成 deploy key_推荐一个免费生成点线/方格/横线纸张的网站
  5. r语言的runmed函数_R实战 第五篇:常用函数的用法
  6. oracle故障级别划分,jfinal 2.2 oracle 事务级别问题
  7. 浙江理工大学计算机组成原理试卷,浙江理工大学计算机组成原理设计试题.doc...
  8. Java——面向接口编程
  9. 《Essential C++》笔记之return;分析
  10. SDL2源代码分析4:纹理(SDL_Texture)
  11. php在类里如何调用call_user_func_array《细说php2》
  12. 在线密码破解medusa
  13. Oracle官网登录下载资源账号
  14. Ubuntu18.04安装灭霸SLAM:ORBSLAM3
  15. 2019届高三理科数学选择填空整理
  16. HoloLens开发的需求与标准总结
  17. win10怎么用计算机,win10专业版如何通过简单设置,让你的电脑更流畅
  18. 基于Zemax的望远镜物镜设计
  19. 直接调节风扇转速的Windows开源工具--Open Hardware Monitor
  20. spring中依赖注入方式总结

热门文章

  1. zoj How Many Shortest Path
  2. mysql的数据类型——待写
  3. UVA - 10118 Free Candies 记忆化搜索经典
  4. C# 获取随机可用端口号
  5. (转)LinqToSql的连接字符串自动调用配置文件中的连接字符串
  6. 构件图(Component Diagram)—UML图(八)
  7. jMenu 不添加item 直接自己添加监听actionPerformed不行mousePressed可以
  8. LOJ #6280. 数列分块入门 4-分块(区间加法、区间求和)
  9. 1266: [AHOI2006]上学路线route
  10. HDU 2859 Phalanx (dp)