• Android 手势


    1. GestureDetector:手势监听类,通常在View的setOnTouchListener方法中设置TouchListener,在TouchListener的onTouch函数中把MotionEvent 触屏事件交给GestureDetector的onTouchEvent处理,GestureDetector构造函数里要设置一个OnGestureListener接口的实现对象,一般用SimpleOnGestureListener
      。对SimpleOnGestureListener接口中函数的说明:
      • 当在屏幕单次轻击时,事件顺序如图,onTouch是view的方法,onDown,onSingle,onSingleTapConfirmed是OnGestureListener方法,onSingleTapUp被调用,说明发生了单击事件,onSingleTapConfirmed被调用,说明确认发生了一个单击事件,不是双击的事件。需要注意的是onSingleTapUp已经是一click事件,onSingleTapUp触发的时候是ACTION_UP事件。onSingleTapConfirmed是在用户手指离开屏幕后触发,所有up并不是所有触屏事件的结束clipboard
      • 当在屏幕上双击时,事件顺序如图,首先发生了一个onSingleTapUp,说明完成了一次单击事件,然后发生了onDoubleTap,至此,一次双击事件已经完成。我们可以看到,onDoubleTap发生的时候是ACTION_DOWN事件,也就是说双击事件是第二次按下屏幕的时候触发,而不是第二次离开屏幕的时候触发,在onDoubleTap发生之后,就可以在onDoubleTapEvent中监听到双击事件发生后从按下到弹起的所有触屏事件。onDoubleTap发生后不会触发onSingleTapUp和onSingleTapConfirmed
        clipboard[1]
      • 做一个长按的操作,事件顺序如图,在ACTION_DOWN时发生,onLongPress发生后在up之前不会用其他事件触发,可以在onShowPress处理状态的改变,onShowPress的解释:The user has performed a down MotionEvent and not performed a move or up yet. This event is commonly used to provide visual feedback to the user to let them know that their action has been recognized i.e. highlight an element.比如按钮的按下状态。clipboard[2]
      • 做一个滑动操作,事件顺序如图,首先是ACTION_DOWN,之后是多次ACTION_MOVE,移动超过一定距离就出发了onScroll,所以onScroll会被出发多次,如果onScroll被触发,在up之前不会有长按,单击,双击等事件。移动的距离是相对于上一次onScroll事件的移动距离,而不是当前点和按下点的距离,滑动速度够快有时会触发onFling事件,onFling事件的触发不是一定的,onFling是在ACTION_UP触发,平时列表在离开屏幕时继续滚动,就是通过这种方式触发。clipboard[3]clipboard[4]clipboard[5]
  • 相关阅读:
    面向对象程序设计第五次作业(修改)
    C++作业 一
    面向对象程序设计第四次作业
    面向对象程序设计第三次作业
    C++学习笔记3
    C++学习笔记2
    C++学习笔记1
    面向对象程序设计作业二
    面向对象程序设计第二次作业
    随笔
  • 原文地址:https://www.cnblogs.com/phenixyu/p/3969129.html
Copyright © 2020-2023  润新知