Android 手势(Gesture)——手势检测

本文介绍了Android中的手势检测,主要关注GestureDetector类的使用。通过实现GestureDetector.OnGestureListener监听器,可以处理双击、滑动、长按等手势。文中还给出了使用步骤和示例代码,展示了如何为按钮添加双击手势和实现拖动效果。
摘要由CSDN通过智能技术生成

手势,其实是指用户手指或触摸笔在触摸屏上的连续触碰行为,比如,在屏幕上从左到右划出的一个动作,就是手势。再比如在屏幕上画出一个圆圈也是手势。

手势这种连续的触碰会形成某个方向上的移动趋势,也会形成一个不规则的几何图形,android提供了手势检测,并为两种手势行为都提供了支持:

对于第一种,android提供了手势检测,并为手势检测提供了相应的监听器。
对于第二种,Android允许开发者添加手势,并提供了相应的API识别用户手势

GestureDetector.OnGestureListener

1.GestureDetector类:

Android为手势检测提供了一个GestureDetector类,GestureDetector实例代表了一个手势检测器,创建GestureDetector时需要传入一个GestureDetector.OnGestureListener 实例。
GestureDetector.OnGestureListener就是一个监听器,负责对用户手势提供相应。

GestureDetector.OnGestureListener中包含的事件处理方法:

  • boolean onDoubleTap(MotionEvent e)
    解释:双击的第二下Touch down时触发
  • boolean onDoubleTapEvent(MotionEvent e)
    解释:双击的第二下Touch down和up都会触发,可用e.getAction()区分。
  • boolean onDown(MotionEvent e)
    解释:Touch down时触发
  • boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
    解释:Touch了滑动一点距离后,up时触发。velocityX,是在x轴上滑动的速度。
  • void onLongPress(MotionEvent e)
    解释:Touch了不移动一直Touch down时触发
  • boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
    解释:Touch了滑动时触发。
  • void onShowPress(MotionEvent e)
    解释:Touch了还没有滑动时触发
    (与onDown,onLongPress比较
    onDown只要Touch down一定立刻触发。
    而Touchdown后过一会没有滑动先触发onShowPress再是onLongPress。
    所以Touchdown后一直不滑动,onDown->onShowPress->onLongPress这个顺序触发。

  • boolean onSingleTapConfirmed(MotionEvent e)

  • boolean onSingleTapUp(MotionEvent e)
    解释:上面这两个函数都是在touch down后又没有滑动(onScroll),又没有长按(onLongPress),然后Touchup时触发。

  • 点击一下非常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值