Android : GestureDetector手势检测

本文介绍了Android中的GestureDetector如何用于手势检测,纠正了将ACTION_DOWN等视为手势的误解。讲解了GestureDetector的构造器、监听器接口以及如何通过覆写部分方法实现功能。通过创建自定义Button并关联GestureDetector实例,展示了具体的使用步骤和方法。
摘要由CSDN通过智能技术生成

  关于Android的手势检测方面,刚开始的时候感觉自己还有点误区,认为onTouchEvent方法中的ACTION_DOWN、ACTION_UP、ACTION_MOVE也算是手势,实际上Android中的手势检测还是有区别的,onTouchEvent方法中只是进行了手指落下、抬起、滑动过程的检测,不算是一个连续的动作,这样像我们平时的长按事件、快速滑动、拖动事件的检测,如果是我们自己写代码去实现会变得非常复杂,Android就为我们提供了其他的检测方式GestureDetector。

GestureDetector

这里写图片描述

GestureDetector使用

  Android提供了手势检测,同时也提供了相应的监听器,也就是API中说的GestureDetector.OnGestureListener,因此要想使用手势检测的功能,我们需要API中说的GestureDetector的实例、Listener、还有就是与OnTouchEvent事件的绑定与关联。
  首先看下构造器,可以看到前两个构造器已经过时,使用的话至少从第三个构造器开始使用,并且里面包含了Listener监听器。
  这里写图片描述 
 关于Listener监听器,前三个监听器都是接口类型的,如果使用它们,需要覆写内部所有的方法,如果我们不需要覆写所有方法,或者是只需要覆写个别的方法就可以直接使用第四个监听器(具体可以覆写哪些方法,可以点击查看)。
这里写图片描述
这里对可以覆写的比较重要的方法进行简单的介绍
这里写图片描述

GestureDetector实例

//在listener中可以写一个匿名内部类,实现某种手势的监听
    mGesture=new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener());

关联

    @Override
public boolean onTouchEvent(MotionEvent event) {
      //gesture与Touch事件进行关联
      mGesture.onTouchEvent(event);
    return super.onTouchEvent(event);
}

GestureDetector使用范例

思路

  自定义Button,在该Button中创建GestureDetector实例,在Listener中覆写相关方法,通过接口回调机制(监听者模式)监听覆写的方法,进行相关操作,最后别忘记与onTouchEvent事件进行关联。

自定义Button

package com.example.mytouchevent;

import android.animation.ObjectAnimator;
import android.content.Context;
import android.util.AttributeSet;
import android.view.Ge
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值