Touch事件处理
1、是Android中两种原始事件之一2、Touch事件的处理方式有两种
1)为事件源添加 onTouchListener监听器
2)重写事件源的 onTouchEvent方法
3、Touch事件处理时,监听器拥有较高的优先级
4、事件处理方法返回值
true:消费此事件,并消费此事件的后续关联事件
false:不消费事件,对此事件的后续事件不感兴趣
5、MotionEvent
主要方法:
int getAction()
float getX()
float getY()
主要常量
int ACTION_DOWN
int ACTION_MOVE
int ACTION_UP
...
Touch事件的派发和处理过程
1、派发:1)总是从Activity开始向下逐级派发,直到将事件派发给最终的焦点控件
2)事件派发使用Activity或视图对象的 dispatchTouchEvent方法
3)dispatchTouchEvent方法的派发方向:
a-向下一级容器或控件的dispatchTouchEvent中派发
b-向该对象自己的事件处理方法中派发
2、处理
1)总是从最终的焦点控件的事件处理方法开始
2)如果事件被消费则事件处理完成,如果事件未被消费,则传递给其父容器的事件处理方法
以此类推 如果一直未被消费,最终在Activity的onTouchEvent中处理
手势
1、步骤1)创建类 实现 OnGestureListener
或扩展自 SimpleOnGestureListener
重写相关的手势处理方法
2)使用手势监听器对象 创建一个 GestureDetector(手势探测器)
3)在Touch事件处理方法中 将所有的touch事件传递给GestureDetector
的onTouchEvent方法
2、主要的相关接口和类型
1、OnGestureListener
onFling
onScroll
...
2、OnDoubleTapListener
onDoubleTap
...
3、SimpleOnGestureListener implements
OnGestureListener,OnDoubleTapListener
4、GestureDetector
构造方法:GestureDetector(Context context,OnGestureListener l)
主要方法:
boolean onTouchEvent(MotionEvent event)