Android 手势识别GestureDector

GestureDetector 手势检测类 ,此类需要继承重写其中的方法。

Detector的意思就是探测者,所以GestureDetector就是用来监听手势的发生.

重写手势姿势类 实现接口中的方法,为了实现双击监听,还必须扩展接口OnDoubleTapListener.

(此图借用别人)

 

//用户按下屏幕就会触发
    @Override
    public boolean onDown(MotionEvent arg0)

//如果是按下的时间超过瞬间,而且在按下的时候没有松开或者是拖动的,那么onShowPress就会执行
    @Override
    public void onShowPress(MotionEvent arg0)

//长按触摸屏,超过一定时长,就会触发这个事件
    //触发顺序 onDown->onShowPress->onLongPress
    @Override
    public void onLongPress(MotionEvent arg0)

//拖动,在屏幕上拖动事件。无论是用手拖动view,或者是以抛的动作滚动,都会多次触发,这个方法       在ACTION_MOVE动作发生时就会触发
    @Override
    public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,float arg3)

//滑屏,用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE, 1个ACTION_UP触发
    //e1:第1个ACTION_DOWN MotionEvent
    //e2:最后一个ACTION_MOVE MotionEvent
    //velocityX:X轴上的移动速度,像素/秒
    //velocityY:Y轴上的移动速度,像素/秒   
    @Override
    public boolean onFling(MotionEvent arg0, MotionEvent arg1, float velocityX,
            float velocityY)

// 滑屏:手指触动屏幕后,稍微滑动后立即松开
    // onDown----->onScroll---->onScroll---->onScroll---->………----->onFling

 // 拖动
    // onDown------>onScroll---->onScroll------>onFiling
    // 可见,无论是滑屏,还是拖动,影响的只是中间OnScroll触发的数量多少而已,最终都会触发onFling事件!

 

//从名子也可以看出,一次单独的轻击抬起操作,也就是轻击一下屏幕,立刻抬起来,才会有这个触发,
    //当然,如果除了Down以外还有其它操作,那就不再算是Single操作了,所以也就不会触发这个事件
    @Override
    public boolean onSingleTapUp(MotionEvent arg0)

=========================================================

//单击事件。用来判定该次点击是SingleTap而不是DoubleTap,如果连续点击两次就是DoubleTap手势,
    //如果只点击一次,系统等待一段时间后没有收到第二次点击则判定该次点击为SingleTap而不是DoubleTap,
    //然后触发SingleTapConfirmed事件。触发顺序是:OnDown->OnsingleTapUp->OnsingleTapConfirmed
    //关于onSingleTapConfirmed和onSingleTapUp的一点区别: OnGestureListener有这样的一个方法onSingleTapUp,
    //和onSingleTapConfirmed容易混淆。二者的区别是:onSingleTapUp,只要手抬起就会执行,
    //而对于onSingleTapConfirmed来说,如果双击的话,则onSingleTapConfirmed不会执行。
    @Override
    public boolean onSingleTapConfirmed(MotionEvent arg0)

 

//双击事件
    @Override
    public boolean onDoubleTap(MotionEvent arg0)

 

//双击间隔中发生的动作。指触发onDoubleTap以后,在双击之间发生的其它动作,包含down、up和move事件
    @Override
    public boolean onDoubleTapEvent(MotionEvent arg0)

=========================================================

//OnContextClickListener

onContextClick(MotionEvent e):当鼠标/触摸板,右键点击时候的回调 (Android7.0 之后才有吧?)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值