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),即便加上那些特殊的事件类型也只有几种而已,所以我们可以用几个常量来标记这些事件,在使用的时候使用 在 Android 2.0 版本的时候,开始引入多点触控技术,由于技术上并不成熟,硬件和驱动也跟不上,多数设备只能支持追踪两三个点而已,因此在设计 API 上采取了一种简单粗暴的方案,添加了几个常量用于多点触控的事件类型的判断。
|