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 - GestureDetector.onGestureLister

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

[Android] QT on Android之android-lighthouse

前面说过我以前规划过的东西已经有人在做了,而且在我的后续规划里提到的那些feature也已经陆陆续续在android-lighthouse这个项目里得到了实施。看到android-lighthouse...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

Android——JNI On Android

1.为什么使用JNI     很长时间我就想写关于这方面的东西,其实弄android已经有段时间了,虽然不太喜欢它,但是还是有然我兴奋的地方,那就是JNI,因为那里有我熟悉的C和LInux。JNI简...

Android training–android studio

又重新开始学习android开发了,希望这次不是三分钟热度。之前是利用eclipse+ADT来开发的,官网上建议用Android Studio。刚好重装了系统,升级了内存。于是下个studio来学学。...

android Android Framework

目录树 /framework/base/api   /framework/base/awt /framework/base/build /framework/base/camera ...

android tool android

android android is an important development tool that lets you: Create, delete, and view And...

Android: Android Property System

//看完就明白prop系统,想prop关机后保存用persist.xxEvery property has a name and value. Both name and value are text...

Android: MimeType in Android

frameworks\base\core\java\android\webkit\MimeTypeMap.java /** * Get the singleton instance ...

【Android】android:属性

基本控制参数含义: android:layout_width="fill_parent" 宽度填满整个父类 android:layout_height="fill_paren"高度填满整个父类...

Android: Android Binding - Introduction

Android Binding - Introduction Introduction Android Binding is a new Open Source Framework for...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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