1、体验与发现

首先看一下代码:

@Override

public boolean onTouchEvent(MotionEvent event) {

switch (event.getActionMasked()) {

case MotionEvent.ACTION_DOWN:

Log.i(TAG, "viewSizeHandle: down"+event.getActionIndex());

break;

case MotionEvent.ACTION_POINTER_DOWN:

Log.i(TAG, "viewSizeHandle: point down"+event.getActionIndex());

break;

case MotionEvent.ACTION_MOVE:

break;

case MotionEvent.ACTION_UP:

Log.i(TAG, "viewSizeHandle: up"+event.getActionIndex());

break;

case MotionEvent.ACTION_POINTER_UP:

Log.i(TAG, "viewSizeHandle: point up"+event.getActionIndex());

default:

break;

}

return true;

}

安卓多指触控涉及的触摸事件就只有四个:ACTION_DOWN、ACTION_POINTER_DOWN、ACTION_UP、ACTION_POINTER_UP

ACTION_MOVE是不包含其中的,感觉有点坑

以下都是默认在一次多指触控过程中:

ACTION_DOWN:触控时,总是第一个被触发,之后就不会再触发

ACTION_POINTER_DOWN:只要还有触控点在屏幕上,之后手指下去都是之触发这个事件

ACTION_UP:触控点离开时,仅当最后一个触控点消失时才会触发

ACTION_POINTER_UP:只要还有触控点在屏幕上,每当手指离开都会触发这个事件

ACTION_MOVE:可以获取按下触控点的位置(getX和getY)

过程:手指1 down →手指2 down →手指3 down → 手指3 up → 手指2 up →手指1 up

可以看到,第一个下去的才会触发ACTION_DOWN,最后一个起来才会触发ACTION_UP

具体自己去体验吧,很简单的代码,实验起来也很简单,在activity贴上代码,慢慢点吧。

2、重要的方法

getPointerCount():返回触控点总数

getActionMasked():用这个方法才能出现掩盖多指触控的事件

getActionIndex():屏幕上每个手指,都对应一个index,返回触发按下或抬起动作的下标index

getX (int pointerIndex): 获取指定触控点的X坐标

getY (int pointerIndex) :获取指定触控点的Y坐标

知道上面这些,就靠你自己发挥了,重点是,要记录x,y和善用随后一个才会出现的ACTION_UP

3、在ACTION_MOVE获取位置信息

@Override

public boolean onTouchEvent(MotionEvent event) {

switch (event.getActionMasked()) {

case MotionEvent.ACTION_DOWN:

Log.i(TAG, "viewSizeHandle: down"+event.getActionIndex());

break;

case MotionEvent.ACTION_POINTER_DOWN:

Log.i(TAG, "viewSizeHandle: point down"+event.getActionIndex());

break;

case MotionEvent.ACTION_MOVE:

if(event.getPointerCount()==2){

Log.i(TAG, "onTouchEvent:0 x:"+event.getX(0)+" y:"+event.getY(0));

Log.i(TAG, "onTouchEvent:1 x:"+event.getX(1)+" y:"+event.getY(1));

}

break;

case MotionEvent.ACTION_UP:

Log.i(TAG, "viewSizeHandle: up"+event.getActionIndex());

break;

case MotionEvent.ACTION_POINTER_UP:

Log.i(TAG, "viewSizeHandle: point up"+event.getActionIndex());

default:

break;

}

return true;

}

只是在ACTION_MOVE获取对应的X和Y,那么你可以判断触控点的数量来实现逻辑,比如:

一个触控点,我们就直接认为是简单的移动事件,比如拖拽的逻辑等

两个触控点,也许你会写什么放大缩小的逻辑

三个触控点,这是三指切换应用什么的

根据需要写逻辑,以上知识举例

android多指触控失效,安卓--多指触控相关推荐

  1. android 触控优化,太滑手了,安卓这款触控优化神器要逆天!

    原标题: 太滑手了,安卓这款触控优化神器要逆天! 最近国外一款很火的优化工具"Super Touch" 中文名[超级触控],它可以提升触控反应速度,手感媲美iPhone,令人惊讶的 ...

  2. Android笔记:触摸事件的分析与总结----多点触控

       其他相关博文:    Android笔记:触摸事件的分析与总结----MotionEvent对象    Android笔记:触摸事件的分析与总结----TouchEvent处理机制     An ...

  3. ubutun 滑动 触控板_Ubuntu触控板支持多指手势和滑动切换应用

    用过苹果笔记本的同学肯定会被它那极为方便的触控板多指手势操作所吸引,特别是左右滑动触控板就能在多个应用界面来回切换这个功能用起来真的太爽了!以至于鼠标对于苹果笔记本都是多余的.其实Ubuntu也是支持 ...

  4. android 多个手指同时点击,处理多点触控手势  |  Android 开发者  |  Android Developers...

    多点触控手势是指多个指针(手指)同时轻触屏幕.这节课介绍了如何检测涉及多个指针的手势. 请参阅以下相关资源: 跟踪多个指针 当多个指针同时轻触屏幕时,系统会生成以下触摸事件: 您可以通过每个指针的索引 ...

  5. Ubuntu触控板支持多指手势和滑动切换应用

    用过苹果笔记本的同学肯定会被它那极为方便的触控板多指手势操作所吸引,特别是左右滑动触控板就能在多个应用界面来回切换这个功能用起来真的太爽了!以至于鼠标对于苹果笔记本都是多余的.其实Ubuntu也是支持 ...

  6. 硬盘短自检失效+重装系统后触控板不能上下滚动页面

    硬盘短自检失效+重装系统后触控板不能上下滚动页面 写完之后发现太能说了,解决方式直接点如下: 1.硬盘短自检失效:先软件后硬件!重装系统试试,不行再拆机把机械盘拔了看能不能启动(有俩盘的),只有一个机 ...

  7. 开启适用于 Force Touch 触控板的“三指拖移”

    "三指拖移"是 OS X 中的一种 Multi-Touch 手势.通过这个手势,您能使用三个手指移动屏幕上的活跃窗口. 本文介绍了在您的 Mac 配备了 Force Touch 触 ...

  8. 修改鼠标滚轮方向配置MacBook触控板的多指快捷操作

    修改鼠标滚轮方向&配置MacBook触控板的多指快捷操作 背景: 问题描述: 解决办法: 参考链接: 软件下载: 几点经验: 背景: 从 macOS 转到 windows 系统最不适应的就是鼠 ...

  9. android layout 对齐,安卓利用TableLayout实现控件列对齐

    背景 有时以列表形式展示控件时,需要保持上下控件对齐. 效果图 "用户账号:"和"密码:"居左或居右对齐,同时后面的输入框也对齐. 实现方案 利用TableLa ...

最新文章

  1. tensorflow入门(二)
  2. pythonista3使用说明_pythonista3都能做什么
  3. 大数据技术之Stome 概念
  4. BZOJ1856[Scoi2010]字符串——组合数学+容斥
  5. 更改windows2003远程最大连接数
  6. 抽象类(Abstract)和接口的不同点、共同点(Interface)。
  7. MySQL Window Function Descriptions
  8. 有长度要求的区间最大值
  9. 工业大数据发展面临四方面挑战
  10. adb修改什么文件获取root权限_Android获取ROOT权限的通用方法
  11. 实例开发:ASP.NET创建网络相册
  12. 169、多数元素(python)
  13. 计算机类毕业设计源码大全
  14. python微博_「Python」 - 微博数据分析
  15. CodeForce Round#49 untitled (Hdu 5339)
  16. 计算机思维的概念知识点,大学计算机—基于计思维知识点.docx
  17. 一台电脑绿色安装多个版本google Chorme方案
  18. 企业微信老是服务器异常,添加好友提示”操作异常”,企业微信需要养号吗?...
  19. python 机器视觉测量_用Opencv python实现精密测量
  20. 几种css炫酷背景欣赏

热门文章

  1. vss服务器的简单使用
  2. 在线版音乐播放器APP(一)
  3. PHP使用socks5代理发送邮件
  4. (翻译)Decision-Making in Driver-Automation Shared Control
  5. BUUCTF-社团考核
  6. AdaBoost算法原理
  7. vscode中terminal不支持workon激活虚拟环境?试试修改默认shell
  8. 有哪些高性价比的LoRa模块?
  9. java与jdk版本号的区别
  10. 2019美团机器学习/数据挖掘算法实习生笔试 编程题修改矩阵