重写onTouchEvent(),在方法内部定制触摸反馈算法
MotionEvent系列方法
动作
- ACTION_UP
- ACTION_MOVE
- ACTION_DOWN
注:并不是某一个点的移动,有点移动就会调用,没有api确认是哪个点的移动 - ACTION_POINTER_DOWN
- ACTION_POINTRE_UP
getActionMasked() 和 getAction()
-
getAction()是比较老的使用方法,表示两个信息。 -
getActionMasked()只表示一个信息,即表示什么动作,无法表示动作是第几个手指(第几个手指使用getActionIndex())。 自定义触摸算法时,都使用getActionMasked()即可。
getX() 和 getRawX()
-
getX()、getY()- 触摸点相对于View的位置。注:多个手指的话,获得的是index为0的手指的坐标。
-
getRawX()、getRawY()- 触摸点相对于屏幕的位置
getPointerCount()
获取当前触摸手指个数。用来遍历当前触摸手指。
event.getX(i)
event.getX()相当于event.getX(0)
一个手指 - p ( x , y , index, id )
1. index会变(用来遍历) -- 假如前置手指抬起,后面的index会变化,index永远是连续的。
2. id不会变(用来追踪)。 -- id会复用, id的复用会导致index的重新调整。
3. 一个eventAction: ACTION_MOVE 可以对应多个p, 因为p是针对view的。 getX(index) 获取对应手指的位置
getActionIndex()
针对ACTION_POINTER_DOWN和ACTION_POINTRE_UP设计出来的