最近公司项目需求有个比较头疼的东西就是想系统发送多点触摸事件,我是问东问西又是Google有事百度的最后还是研究出来了,不废话了下面大概的说一下:
首先官方提供的SDK中已经为我们准备了这样的MotionEvent事件,但是因为它的参数众多第一开始被我忽略了:
以上4.0处理多点的事件.
以上2.3处理多点的事件,可以看出来google提示我们已经过时了建议使用4.0的那个.这两个方法最大的不同点就是4.0中多了PointerProperties[]参数,它是替换了2.3中int[] pointerIds这个参数,具体的请参考sdk中 MotionEvent.PointerProperties 这个类.
这里我主要介绍一下2.3的事件下发:
第一个和第二个参数它们就是一个时间戳: 用 SystemClock.uptimeMillis() 获得即可.
第三个参数(int action): 这个参数是比较重要的,因为它对应这具体你发送到系统的是什么事件,下面介绍一下事件:
普通的单点的事件无非就是 DOWN/UP/MOVE 三种,它们在SDK中都是常量可以通过