您的位置:首页 > 移动开发 > Android开发

Android的Touch事件处理和手势

2016-04-10 22:41 531 查看

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android的Touch事件