android有处理鼠标动作的GestureDetector,使用起来也挺方便,几个常用事件你都可以找到接口接入处理:
单击、双击(比如双击放大)、滑动(比如翻页)
下面是简化的例子,参考并整合所得,来源参考页尾参考内容:
package com.aslibra.test;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.GestureDetector.OnGestureListener;
import android.widget.LinearLayout;
import android.widget.TextView;
public class touchGesture extends Activity implements OnGestureListener {
private LinearLayout main;
private TextView viewA;
private GestureDetector gestureScanner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gestureScanner = new GestureDetector(this);
gestureScanner.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener(){
public boolean onDoubleTap(MotionEvent e) {
viewA.setText("-" + "onDoubleTap" + "-");
//双击时产生一次
Log.v("test", "onDoubleTap");
return false;
}
public boolean onDoubleTapEvent(MotionEvent e) {
//双击时产生两次
Log.v("test", "onDoubleTapEvent");
return false;
}
public boolean onSingleTapConfirmed(MotionEvent e) {
viewA.setText("-" + "onSingleTapConfirmed" + "-");
//短快的点击算一次单击
Log.v("test", "onSingleTapConfirmed");
return false;
}
});
main = new LinearLayout(this);
main.setBackgroundColor(Color.GRAY);
main.setLayoutParams(new LinearLayout.LayoutParams(320,480));
main.setOrientation(LinearLayout.VERTICAL);
viewA = new TextView(this);
viewA.setBackgroundColor(Color.YELLOW);
viewA.setTextColor(Color.BLACK);
viewA.setTextSize(16);
viewA.setLayoutParams(new LinearLayout.LayoutParams(320,50));
main.addView(viewA);
setContentView(main);
}
@Override
public boolean onTouchEvent(MotionEvent me) {
return gestureScanner.onTouchEvent(me);
}
@Override
public boolean onDown(MotionEvent e) {
//viewA.setText("-" + "DOWN" + "-");
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
//viewA.setText("-" + "FLING" + "- "+velocityX + "- "+velocityY);
Log.v("test", "onFling "+e1.getX()+" "+e2.getX());
return true;
}
@Override
public void onLongPress(MotionEvent e) {
//viewA.setText("-" + "LONG PRESS" + "-");
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
//viewA.setText("-" + "SCROLL" + "- "+distanceX + "- "+distanceY);
Log.v("test", "onScroll "+e1.getX()+" "+e2.getX());
return true;
}
@Override
public void onShowPress(MotionEvent e) {
//viewA.setText("-" + "SHOW PRESS" + "-");
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
Log.v("test", "onSingleTapUp");
//viewA.setText("-" + "SINGLE TAP UP" + "-"+ i++);
return true;
}
}
分享到:
相关推荐
本文将深入探讨如何在Android中处理View的单击、双击以及移动事件,以实现更佳的用户体验。我们将通过一个名为"TestViewEvent"的例子来阐述这些概念。 首先,我们要了解Android中的基本事件监听器。在Android中,...
首先,我们需要创建一个GestureDetector的实例,重写其onDown()、onSingleTapUp()和onDoubleTap()方法,分别处理手指按下、单击释放和双击事件。例如: ```java GestureDetector gestureDetector = new ...
接下来,我们需要添加单击和双击事件的处理。可以通过实现接口或者使用监听器模式来实现。这里我们可以创建两个接口: ```java public interface OnItemClickListener { void onItemClick(int position); void ...
总的来说,实现"android 单指,双指单击及双击放大图片"的功能,需要深入理解Android的触摸事件机制,以及如何利用`OnTouchListener`、`GestureDetector`和`ScaleGestureDetector`来处理不同的手势。同时,还需要...
- 添加手势识别库如`GestureDetector`,以区分单击、双击和滑动。 3. **图片加载库**: - 使用图片加载库如Glide或Picasso来优化图片加载性能,防止内存溢出。 - 实现图片的懒加载策略,只加载当前屏幕可见的...
Android 键盘和鼠标事件详解 Android 事件机制是现代用户界面的核心组件之一,它基于事件驱动的方式来实现人机交互。...通过对触摸屏事件和按键事件的处理,可以实现复杂的用户交互逻辑,提高应用程序的用户体验。
本篇文章将深入探讨如何在Android中实现ListView的显示以及单击事件处理。首先,我们了解ListView的基本概念。 ListView是一个可滚动的视图,它能显示一个长列表,其中每个项目都由一个单独的View表示。ListView...
在Android开发中,手势识别和双击事件是构建用户交互体验的重要组成部分。本文将深入探讨这两个主题,并结合提供的"gestureDemo"示例项目,详细解释如何实现这些功能。 首先,让我们了解一下手势识别。Android系统...
1. GestureDetector:Android提供的GestureDetector类可以帮助我们识别基本的手势,如单击、双击、滑动等。我们需要创建一个GestureDetector实例,并重写onDown、onFling等回调方法来处理特定的手势事件。 2. ...
在Android开发中,实现双击事件处理是一项常见的需求,它通常用于执行某个功能或切换界面状态。本篇文章将深入探讨如何在Android应用中实现双击功能,并提供相关的代码示例。 首先,我们要理解双击(Double Tap)的...
GestureDetector是Android提供的一个用于检测基本手势的类,如单击、双击、长按、滑动等。SimpleOnGestureListener是GestureDetector的一个简单实现,它提供了一些基本手势的回调方法,开发者可以根据需求重写这些...
GestureDetector提供了简单的API来处理单击、双击以及其他滑动手势。我们需要创建一个GestureDetector的实例,并重写其onDown()、onSingleTapUp()、onDoubleTap()等方法。在onDoubleTap()方法中,我们执行图片的放大...
本文将详细介绍Android中处理触摸事件的相关知识,并结合`android.view.GestureDetector`以及自定义监听器的使用来深入解析如何有效地识别和响应触摸事件。 #### 二、触摸事件基础 在Android中,触摸事件主要通过`...
`OnGestureListener` 是Android SDK中的一个接口,它位于`android.view.GestureDetector`类中,主要用于处理基本的手势识别,如单击、双击、长按以及滑动。下面我们将详细探讨如何使用`OnGestureListener`来实现屏幕...
`GestureDetector`和`ScaleGestureDetector`是Android提供的两个关键类,用于检测用户的单击、双击、滑动和缩放等手势。我们需要创建这两个类的实例,并重写它们的相关回调方法。 3. **单击与双击检测**: `...
Android提供了` GestureDetector`类,用于识别简单的手势,如单击、双击和滑动。开发者需要创建一个`GestureDetector`实例,并重写其回调方法,如`onDown()`、`onSingleTapUp()`、`onFling()`等,其中`onFling()`...
`GestureDetector`是Android SDK提供的一种用于识别简单手势(如单击、双击、滑动等)的工具。开发者可以通过创建一个`GestureDetector`实例,并重写其回调方法来处理特定的手势事件。 2. **滑动手势** 滑动...
1. **GestureDetector**: 这个类提供了对常见触摸屏手势的检测,如单击、双击、滑动等。首先,我们需要创建一个`GestureDetector`实例,并重写其内部的`OnGestureListener`接口方法。主要涉及的方法有: - `onDown...
通过GestureDetector和相关的回调方法,我们可以轻松地检测和处理滑动事件。TestFlip源码实例可以作为参考,帮助开发者理解如何在实际项目中实现滑动功能。无论是简单的页面切换还是复杂的交互,掌握手势滑动的原理...
Android提供了GestureDetector和ScaleGestureDetector等工具类来帮助识别常见手势,如单击、滑动、双击、缩放等。通过监听器接口,我们可以在特定手势发生时执行相应逻辑。 例如,使用GestureDetector来识别滑动...