通过onTouchEvent判断是否为双击事件,通过前面一次up 跟本次down之间的时间差,并且点击的点的坐标偏移来确定是否为双击事件DOUBLE_TAP_TIMEOUT。

        boolean isMove = false;private final int DOUBLE_TAP_TIMEOUT = 200;private MotionEvent mCurrentDownEvent;private boolean mDoubleTapEnabled = false;private MotionEvent mPreviousUpEvent;@Overridepublic void onTouchEvent(MotionEvent event) {Log.e(LOG_TAG, "MotionEvent="+ event.getAction()+",isMove="+isMove);Log.e(LOG_TAG, "mPreviousUpEvent="+ mPreviousUpEvent+",mCurrentDownEvent="+mCurrentDownEvent);if (event.getAction() == MotionEvent.ACTION_MOVE) {                isMove = true;}else if (event.getAction() == MotionEvent.ACTION_DOWN) {if (mPreviousUpEvent != null && mCurrentDownEvent != null && isConsideredDoubleTap(mCurrentDownEvent, mPreviousUpEvent, event)) {if (mDoubleTapEnabled && Environment.getExternalStorageState().equals("mounted")) {                        Toast.makeText(getApplicationContext(), getResources().getString(R.string.double_click), Toast.LENGTH_LONG).show();}}mCurrentDownEvent = MotionEvent.obtain(event);}else if (event.getAction() == MotionEvent.ACTION_UP){mPreviousUpEvent = MotionEvent.obtain(event);isMove = false;}}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;}

转载于:https://www.cnblogs.com/renhui/p/9480948.html

Android 通过onTouchEvent判断是否为双击事件相关推荐

  1. Android 用onTouchEvent判断上下左右滑动

    直接贴代码,方便以后用到: package com.qing.leftrightdemo;import android.app.Activity; import android.os.Bundle; ...

  2. android 按键双击,实现Android监控任意控件或按键双击事件方法

    为了实现对Android任意控件和按键进行双击事件的监听,所以写了一个可以在代码中任意移植的解决方法. 一.解决思路 为了实现双击事件的监听,首先需要一个线程来执行两次点击事件的判断,决定是否属于一次 ...

  3. Android实现双击事件的两种方式

    Work around的方法是先监听onTouch事件来监听连续点击次数,每次点击都布置一个间隔时间的延时任务,延时任务执行时判断间隔内是否还有点击,如果没有则发布点击次数,重置计数. 实现代码如下: ...

  4. 关于android 双击事件

    大家好,关于android双击事件 我相信大家都知道 API中是有个方法的,但是必须在Activity中在能使用. 对于到底用不用android 双击事件API各有各的看法. 在Activity中使用 ...

  5. Android实现双击事件的监听

    本文转自:Android实现双击事件的监听 Android实现view的双击事件监听,一般使用的场景,列表双击顶部回到第一条! 双击监听 /*** view双击监听事件*/ public class ...

  6. android 拦截点击事件,Android双击事件拦截方法

    下文我们介绍两种双击事件拦截的方式 1.通过Android的事件分发机制进行拦截(dispatchTouchEvent) 话不多说,直接上代码: /** 判断是否是快速点击 */ private st ...

  7. android 触摸屏双击事件

    大家好,关于android双击事件 我相信大家都知道 API中是有个方法的,但是必须在Activity中在能使用. 对于到底用不用android 双击事件API各有各的看法. 在Activity中使用 ...

  8. android 双击事件

    局限于双击屏幕触发 1.MainActivity.java import com.xu.service.LearnGestureListener;import android.app.Activity ...

  9. Android 取消返回键返回事件,返回桌面,再按一次退出程序,双击事件

    mainactivity返回桌面代码: activity下添加如下代码即可: @Override public void onBackPressed() {Intent home = new Inte ...

最新文章

  1. opencv 显示图片
  2. 内核对象用于线程同步
  3. 【Python】for 循环倒叙遍历
  4. php生成gz文件,如何使用PHP创建.gz文件?
  5. MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
  6. 【线上直播】深度学习简介与落地实战经验分享
  7. Hamcrest Matchers教程
  8. linux下配置钉钉内网穿透_4G工业路由器内嵌花生壳PHTunnel,为工业物联网提供智能内网穿透...
  9. 配置Editplus调试PHP程序入门教程
  10. Archlinux安裝指南(uefi+gpt)
  11. 树莓派( Raspberry Pi )3B+ 能做什么?
  12. windows快捷健总结
  13. 强化学习开发黑白棋、五子棋游戏
  14. Springboot+easyUI filebox实现单个文件上传
  15. 系统调用ptrace和进程跟踪
  16. 【python】Python报错:RecursionError: maximum recursion depth exceeded in comparison
  17. 天下所有的事,都是为了利益,都是按利益逻辑规律在运行,发生的一切事情都可以用利益逻辑来解释
  18. 14个适合后台管理系统快速开发的前端框架
  19. 详解PHP设置定时任务的实现方法
  20. 记录SSD训练时一个坑:FileNotFoundError

热门文章

  1. win10 1709电脑无法显示局域网共享
  2. 【对比分析四】position的absolute与fixed共同点与不同点
  3. python转载[编码问题]
  4. 利用cheat engine以及VC编写游戏修改器
  5. 自己挖的坑自己填--docker创建实例出现Waiting for SSH to be available…
  6. 微信小程序实现图片是上传、预览功能
  7. 安装配置JDK和Eclipse的步骤
  8. HTML-参考手册: HTTP 方法:GET 对比 POST
  9. Nas服务器使用xampp修改端口号
  10. jquery 判断元素内容是否为空