Android - GestureDetector.onGestureLister

原创 2015年11月20日 16:32:14

GestureDetector.onGestureLister

该监听器用来监听手势变化。通过实现它的接口来监听不同的手势变化。如果你只是想监听一个比较简单地子集可以继承GestureDetector.SimpleOnGestureLister.

公共方法

// 用户轻触屏幕,有一个MotionEvent ACTION_DOWN触发
public boolean onDown(MotionEnvent event) {
    return true;
}

// 用户按下屏幕,快速移动后松开,由1个MotionEvent ACTION_DOWN,多个ACTION_MOVE,1个ACTION_UP触发
// e1: 用户按下事件
// e2: 当前移动事件
// velocityX: 横向每秒移动速度
// velobityY: 纵向每秒移动速度
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
    return true;
}

// 用户长按屏幕,有多个MotionEvent ACTION_DOWN触发
public void onLongPress(MotionEvent e) {

}

// 用户按下屏幕并拖动,有1个ACTION_DOWN,多个ACTION_MOVE触发
// distanceX: X轴方向移动距离
// distancdY: Y轴方向移动距离
public void onSroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {

}

// 用户轻按屏幕,尚未松开或正在拖动,有1个MotionEvent ACTION_DOWN触发
public void onShowPress(MotionEvent e) {

}

// 用户轻按后松开,有1个ACTION_UP触发
public boolan onSingleTapUp(MotionEvent e) {
    return ture;
}

如何识别用户手势操作(事件来源)

public class MyGesture extends Activity implements OnTouchListener, onGestureListener{
    private GesureDetector mGestureDetector;
    public MyGesture() {
        mGestureDetector = new GestureDetectore(this);
    }

    public void onCreate(Bundle savedInstanceState) {
        ...
        TextView tv = (TextView) findViewById(R.id.tv);
        tv.setOnTouchListener(this);
        tv.setFocusable(true);
        tv.setClickble(true);
        tv.setLongClickable(true);
        // 设置false后onLongPress()事件不生效
        mGestureDetector.setIsLongPressEnable(true);
    }

    // 在onTouch()方法中,调用GestureDetector的onTouch()方法,将捕捉到的MotionEvent交给GestureDetector来分析是否有合适的callback函数来处理用户的手势
    public boolean onTouch(View v, MotionEvent event){
        return mGestureDetector.onTouchEvent(event);
    }
    ...
    ...
}

用户操作事件

  • 普通点击 onDown() -> onSingleTapUp()


  • 长按不放松 onDown() -> onShowPress() -> onLongPress()


  • 快速滑动 onDown() -> onScroll() -> onScroll() -> .... -> onFling()


  • 当触发onLongPress()后无法触发onScroll()
版权声明:本文为博主原创文章,未经博主允许不得转载。

Android使用FFmpeg 解码H264并播放(一)

问题描述在开发中使用某摄像头的SDK,只能获取到一帧帧的 H264 视频数据,不知道视频流地址,需要自己解码出图像并播放。问题解决编译FFmpeg此处省略,这里有 编译好的库,上传到Github了。开...
  • a571293251
  • a571293251
  • 2017年06月12日 16:18
  • 1255

Android基础之Path类的使用

Android基础之Path类的使用我们知道Android中Canvas类对象可以进行绘制事物,里面有一个方法为canvas.drawPath方法,这个方法就是用来绘制我们的自定义Path对象。Pat...
  • Mr_dsw
  • Mr_dsw
  • 2015年10月06日 15:00
  • 7522

安卓之旅第一站--第一次Android Studio2.3搭建过程总结

安卓之旅第一站--给第一次安装Android Studio的同学作参考用的Android Studio搭建笔记,里面记录了一部分常见的搭建过程中出现的错误,希望可以帮到第一次搭建Android Stu...
  • iam549032340
  • iam549032340
  • 2017年02月24日 13:27
  • 6588

Android手势识别GestureDetector分析

  • 2015年10月14日 15:39
  • 2.01MB
  • 下载

Android 简单的手势处理+监听的处理,用GestureDetector

添加手势识别监听步骤: 一、给相应的控件添加触摸监听事件, 二、利用GestureDetector转发这个触摸事件。 三、事先定义好一个实现simpleongestureListener这个监听的接口...
  • ITzhongzi
  • ITzhongzi
  • 2016年07月07日 16:26
  • 218

android使用GestureDetector实现手势下滑与ListView onTouchEvent 冲突问题 解决

在实际开发中你可能需要把ListView中的onTouchEvent写在Activity中进行操作,或者是同时存在对ListView或者Activity的不同向操作(例如向左右向上下滑动绑定不同事件)...
  • u012000060
  • u012000060
  • 2015年09月29日 14:05
  • 1332

Android中的GestureDetector(手势)详细区分介绍

Android为了手势检测提供了GestureDetector手势识别类。GestureDetector类代表一个手势检测器,创建GestureDetector时需要传人一个GestureDetect...
  • stven_king
  • stven_king
  • 2014年07月17日 10:38
  • 1559

Android左右滑动切换背景(GestureDetector)

本文利用OnGestureListener,  OnTouchListener这两个接口来实现一个左右切换背景图片的demo 其中OnTouchListener用于获取用户对手机的操作,如触摸、拖动...
  • johnsonwce
  • johnsonwce
  • 2014年03月24日 16:51
  • 940

Android GestureDetector手势识别与多点触控探究

参考文章: 理解Android的手势识别 Android实战之手势与多点触控探究 Android开发中实现多点触摸 Android学习指南之三十八:Android手势操作编程 Andro...
  • qingfengzaishou
  • qingfengzaishou
  • 2015年09月08日 14:41
  • 1883

android 点击、滑动事件的处理 GestureDetector

当希望   处理       点击view  或者滑动屏幕 的 事件的时候  我们会设置一些  监听器 1、常规的点击滑动的事件处理 设置一些监听器、如button、seekBar 等的onCli...
  • a772890398
  • a772890398
  • 2016年01月20日 12:15
  • 4608
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android - GestureDetector.onGestureLister
举报原因:
原因补充:

(最多只允许输入30个字)