`

android 手势操作GestureDetector

 
阅读更多

利用触摸屏的Fling、Scroll等Gesture(手势)操作来操作会使得应用程序的用户体验大大提升,比如用Scroll手势在 浏览器中滚屏,用Fling在阅读器中翻页等。在Android系统中,手势的识别是通过 GestureDetector.OnGestureListener接口来实现的,举例说明:

 

public class ActivityMain extends Activity implements GestureDetector.OnGestureListener { 
 
    GestureDetector detector; 
 
    /** 
     * Called when the activity is first created. 
     */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        //构造GestureDetector;Context context, OnGestureListener listener 
        detector = new GestureDetector(this, this); 
 
        detector.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() { 
           //短快的点击算一次单击 
            @Override 
            public boolean onSingleTapConfirmed(MotionEvent e) { 
                System.out.println("onSingleTapConfirmed"); 
                return false; 
            } 
            //双击时产生一次 
            @Override 
            public boolean onDoubleTap(MotionEvent e) { 
                System.out.println("onDoubleTap"); 
                return false; 
            } 
          //双击时产生两次 
            @Override 
            public boolean onDoubleTapEvent(MotionEvent e) { 
                System.out.println("onDoubleTapEvent"); 
                return false; 
            } 
        }); 
    } 
 
    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
        return detector.onTouchEvent(event); 
    } 
    // 用户轻触触摸屏,由1个MotionEvent ACTION_DOWN触发 
    @Override 
    public boolean onDown(MotionEvent e) { 
        System.out.println("onDown"); 
        return false; 
    } 
  // 用户轻触触摸屏,尚未松开或拖动,由一个1个MotionEvent ACTION_DOWN触发    
   // 注意和onDown()的区别,强调的是没有松开或者拖动的状态 
    @Override 
    public void onShowPress(MotionEvent e) { 
 
    } 
    //用户(轻触触摸屏后)松开,由一个1个MotionEvent ACTION_UP触发 
    @Override 
    public boolean onSingleTapUp(MotionEvent e) { 
        System.out.println("onSingleTapUp"); 
        return false; 
    } 
   // 用户按下触摸屏,并拖动,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE触发 
    @Override 
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { 
        System.out.println("onScroll"); 
        return false; 
    } 
   // 用户长按触摸屏,由多个MotionEvent ACTION_DOWN触发 
    @Override 
    public void onLongPress(MotionEvent e) { 
        System.out.println("onLongPress" + e.getEventTime()); 
    } 
   //用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE, 1个ACTION_UP触发 
    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
        System.out.println("onFling: " + (e1.getX() - e2.getX()) + " " + (e1.getY() - e2.getY()) + " " + velocityX + " " + velocityY); 
        System.out.println(e1.getY()); 
        return false; 
    } 
} 
 
分享到:
评论

相关推荐

    Android手势识别GestureDetector分析

    在Android系统中,每一次手势交互都会依照以下顺序执行。 1. 接触接触屏一刹那,触发一个MotionEvent事件。 2. 该事件被OnTouchListener监听,在其onTouch()方法里获得该MotionEvent对象。 3. 通过GestureDetector...

    Android触摸及手势操作GestureDetector

    在Android开发中,触摸事件和手势操作是用户体验的关键部分,特别是在移动设备上。`GestureDetector`是Android SDK提供的一种高效且灵活的方式,用于处理复杂的触摸手势。本篇文章将深入探讨`GestureDetector`的工作...

    android开发之GestureDetector手势识别调节音量亮度快进和后退源码.zip

    对于希望深入学习Android手势识别和交互设计的开发者而言,这些源码是一个宝贵的学习资源。通过分析和运行这些源码,开发者能够更好地理解GestureDetector的使用方法,并将其应用于实际项目中,提升应用的交互性和...

    Android手势识别器GestureDetector使用详解

    Android手势识别器GestureDetector使用详解 Android手势识别器GestureDetector是Android系统中的一种手势识别器,用于识别用户在屏幕上的各种手势,如单击、双击、滑动、拖动等。GestureDetector可以帮助开发者轻松...

    Android手势操作实例

    在"Android手势操作实例"中,我们将探讨如何在Android应用程序中实现这些手势。 首先,我们要了解Android中的手势检测机制。Android SDK提供了`GestureDetector`类,它是处理基本手势的核心工具。这个类可以帮助...

    android手势处理图片平移、缩放和旋转

    "android手势处理图片平移、缩放和旋转"这个主题涉及到的主要知识点包括Android手势检测、ImageView的扩展以及图片操作。 首先,我们要了解Android的手势检测。Android系统提供了一套GestureDetector和...

    android手势库识别

    Android手势库识别主要涉及的是如何让应用能够理解并响应用户的触摸动作,从而实现更直观、更便捷的交互方式。本教程适用于初学者,将深入探讨如何在Android应用中集成和使用手势库。 1. **手势库介绍** Android...

    Android手势操作和Activity切换动画Demo

    这个"Android手势操作和Activity切换动画Demo"是一个学生练习项目,它旨在教授开发者如何实现这两种功能。 首先,让我们深入理解Android手势操作。在Android中,`GestureDetector`类是用于识别基本滑动、点击等手势...

    android 手势识别学习

    本教程将聚焦于Android手势识别的实现,主要关注`GestureDetector`类。 `GestureDetector`是Android SDK中的一个核心组件,用于处理基本的手势检测。它处理了滑动(swipe)、点击(tap)和长按(long press)等常见...

    Android GestureDetector实现手势滑动效果

    `GestureDetector`是Android SDK提供的一种工具类,用于检测和处理基本的手势,如轻触、双击、滑动等。本文将深入探讨如何使用`GestureDetector`来实现屏幕上的滑动手势。 首先,我们需要在布局文件中添加一个视图...

    Android 手势监听 控件随手势而动

    本篇主要介绍Android手势监听的相关知识点,结合给定的"Android 手势监听 控件随手势而动"的标题和描述,我们将探讨如何在Android应用中实现自定义手势以及其在实际开发中的应用。 首先,Android SDK提供了多种内置...

    2011.10.11——— android GestureDetector 测试OnGestureListener

    这篇2011年的博客文章“2011.10.11——— android GestureDetector 测试OnGestureListener”很可能详细探讨了如何使用`GestureDetector`来监听和处理用户的手势。 `GestureDetector`的核心在于它的监听器`...

    GestureDetector和SimpleOnGestureListener的使用教程

    GestureDetector是Android SDK中的一种手势识别机制,它可以识别多种手势,例如down、up、scroll、filing等。通过GestureDetector的构造方法,可以将SimpleOnGestureListener对象传递进去,从而使GestureDetector...

    android手势demo

    "android手势demo"是一个针对Android平台的手势操作示例项目,它包含了源代码和详细的使用步骤,旨在帮助开发者理解和实现各种手势识别功能。以下是对这个项目的详细解读。 首先,我们要理解Android手势的基本概念...

    android的手势操作代码

    在Android平台上,手势操作是移动应用开发中的重要组成部分,它为用户提供了一种直观且便捷的交互方式。在Android中,我们可以使用内置的手势检测库来识别和处理各种手势,如单击、双击、滑动、捏合缩放等。本篇文章...

    Android手势查看图片

    "Android手势查看图片"是一个针对Android新手的教学项目,旨在帮助开发者和用户理解如何在Android应用中实现手势识别功能,特别是用于浏览图片。 手势识别在Android中主要通过Sensor Manager和Gesture Detector两个...

    Android编程使用GestureDetector实现简单手势监听与处理的方法

    `GestureDetector`是Android SDK提供的一种用于检测常见手势的工具类,如单击、双击、滑动等。本实例将详细讲解如何使用`GestureDetector`来实现简单的手势监听与处理。 首先,我们需要了解`GestureDetector`的工作...

    Android手势库应用

    Android手势库允许开发者为应用程序添加丰富的交互方式,使得用户可以通过各种手势来控制和操作应用。本文将深入探讨Android手势库的应用,帮助初学者理解和掌握这一技术。 首先,Android手势库的核心是`...

Global site tag (gtag.js) - Google Analytics