单点触控和多点触控

Android 多点触控详解,在前面的几篇文章中我们大致了解了 Android 中的事件处理流程和一些简单的处理方案,本次带大家了解 Android 多点触控相关的一些知识。

多点触控 ( Multitouch,也称 Multi-touch ),即同时接受屏幕上多个点的人机交互操作,多点触控是从 Android 2.0 开始引入的功能,在 Android 2.2 时对这一部分进行了重新设计。

  • Android 将所有的事件都封装进了 Motionvent 中。
  • 我们可以通过复写 onTouchEvent 或者设置 OnTouchListener 来获取 View 的事件。
  • 多点触控获取事件类型请使用 getActionMasked() 。
  • 追踪事件流请使用 PointId

多点触控相关的事件:

在屏幕上滑动 时触发,会多次触发。 最后一个 手指 离开屏幕 时触发。 ACTION_POINTER_DOWN ACTION_POINTER_UP ACTION_POINTER_1_DOWN
第一个 手指 初次接触到屏幕 时触发。
即按下之前已经有手指在屏幕上)。
即抬起之后仍然有手指在屏幕上)。
ACTION_POINTER_2_DOWN ACTION_POINTER_3_DOWN ACTION_POINTER_1_UP ACTION_POINTER_2_UP ACTION_POINTER_3_UP 多点触控相关的方法: 回顾完毕,开始正文。

一、多点触控相关问题

在引入多点触控之前,事件的类型很少,基本事件类型只有按下(down)、移动(move) 和 抬起(up),即便加上那些特殊的事件类型也只有几种而已,所以我们可以用几个常量来标记这些事件,在使用的时候使用 getAction() 方法来获取具体的事件,之后和这些常量进行对比就行了。

在 Android 2.0 版本的时候,开始引入多点触控技术,由于技术上并不成熟,硬件和驱动也跟不上,多数设备只能支持追踪两三个点而已,因此在设计 API 上采取了一种简单粗暴的方案,添加了几个常量用于多点触控的事件类型的判断。

多点触控需要使用这个方法获取事件类型。
这些事件类型是用来判断非主要手指(第一个按下的称为主要手指)的按下和抬起,使用起来大概是这样子:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年1月5日
下一篇 2018年1月5日

相关推荐