`
Goro
  • 浏览: 174026 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

丰富多彩的Android onTouch事件

阅读更多
今天又学了一点关于Android的新东西。 估计iphone有更好的, 高手绕过。。。

Android里有两个类
android.view.GestureDetector
android.view.GestureDetector.SimpleOnGestureListener

(另外android.widget.Gallery好像是更牛x的OnGestureListener )

1)
新建一个类继承SimpleOnGestureListener,HahaGestureDetectorListener
可以实现以下event事件。

boolean  onDoubleTap(MotionEvent e)
解释:双击的第二下Touch down时触发

boolean  onDoubleTapEvent(MotionEvent e)
解释:双击的第二下Touch down和up都会触发,可用e.getAction()区分。

boolean  onDown(MotionEvent e)
解释:Touch down时触发

boolean  onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
解释:Touch了滑动一点距离后,up时触发。

void  onLongPress(MotionEvent e)
解释:Touch了不移动一直Touch down时触发

boolean  onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
解释:Touch了滑动时触发。

void  onShowPress(MotionEvent e)
解释:Touch了还没有滑动时触发
(与onDown,onLongPress比较
onDown只要Touch down一定立刻触发。

而Touchdown后过一会没有滑动先触发onShowPress再是onLongPress。

所以Touchdown后一直不滑动,onDown->onShowPress->onLongPress这个顺序触发。


boolean  onSingleTapConfirmed(MotionEvent e)
boolean  onSingleTapUp(MotionEvent e)
解释:上面这两个函数都是在touch down后又没有滑动(onScroll),又没有长按(onLongPress),然后Touchup时触发。

点击一下非常快的(不滑动)Touchup:
onDown->onSingleTapUp->onSingleTapConfirmed

点击一下稍微慢点的(不滑动)Touchup:
onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed


2)在view的新建一个GestureDetector的对象。
构造函数里
gestureDetector = new GestureDetector(new HahaGestureDetectorListener());

然后在View的onTouchEvent里以下这样用,就可以在刚才1)弄的事件里写自己的代码了。
@Override
public boolean onTouchEvent(MotionEvent event) {
    gestureDetector.onTouchEvent(event);
}


但是,郁闷的是SimpleOnGestureListener没有提供onUp(), 还得在View的
onTouchEvent的
case MotionEvent.ACTION_UP:
里来写对应的代码。。。
分享到:
评论
3 楼 dai_lm 2013-01-02  
andyzhchy 写道
新建一个类继承SimpleOnGestureListener,HahaGestureDetectorListener 
可以实现以下event事件。
java可以多继承???

Listener,明显是实现咯
不记得Interface可以继承
2 楼 lostsky_11 2010-07-24  
andyzhchy 写道
新建一个类继承SimpleOnGestureListener,HahaGestureDetectorListener 
可以实现以下event事件。
java可以多继承???


博主的意思应该是新建了一个类HahaGestureDetectorListener,继承了SimpleOnGestureListener
没必要怀疑博主
1 楼 andyzhchy 2010-05-21  
新建一个类继承SimpleOnGestureListener,HahaGestureDetectorListener 
可以实现以下event事件。
java可以多继承???

相关推荐

    Android中丰富多彩的onTouch事件.rar

    本文将深入探讨`onTouch`事件在Android中的应用,以及如何利用它来实现丰富多彩的用户交互。 一、`MotionEvent`:触摸事件的基础 `MotionEvent`是Android中用于表示触摸屏幕事件的类,它包含了与触摸事件相关的所有...

    丰富多彩的Android onTouch事件.doc

    在Android开发中,触摸事件处理是非常关键的一部分,特别是在创建用户交互丰富的应用时。`onTouch`事件是Android UI系统中的核心事件,它涉及到用户与屏幕的直接交互。本篇文章将详细探讨Android的`onTouch`事件,...

    Android onTouch事件传递机制

    在Android开发中,触摸事件处理是用户界面交互的关键部分,`onTouch`事件是其中的核心机制。本篇文章将深入探讨Android的`onTouch`事件传递机制,帮助开发者更好地理解和运用这一功能。 首先,Android的触摸事件...

    Android ontouch事件处理的三种方式

    本篇文章将深入探讨Android中处理`ontouch`事件的三种常见方式:通过接口实现、使用内部类以及利用匿名内部类。理解并熟练掌握这三种方式,对于提升Android应用的交互体验至关重要。 首先,我们来看第一种方式——...

    手势操作onTouch事件demo

    在Android开发中,手势操作是用户与应用交互的重要方式之一,`onTouch`事件是实现手势操作的基础。...通过熟练掌握`onTouch`事件处理和手势检测工具的使用,开发者可以构建出更加丰富多彩的交互式应用。

    使用OnTouch实现一个控件同时设置单击、双击、长按事件demo

    `OnTouchListener`是Android中的一个接口,它定义了`onTouch(View view, MotionEvent event)`方法,用于监听视图上的触摸事件。`MotionEvent`对象包含了关于触摸事件的所有信息,如动作类型(ACTION_DOWN, ACTION_UP...

    android悬浮框的onTouch和onClick事件同时存在

    在Android开发中,创建悬浮窗(FloatWindow)是一种常见的需求,它可以实现类似系统通知栏、桌面小部件等...通过这种方式,我们可以在Android悬浮窗上实现onTouch和onClick事件的并存,为用户提供更丰富的交互体验。

    OnTouch事件对应代码

    了解这些机制和注意事项,可以帮助开发者更高效、更准确地使用`OnTouch`事件,创造出更加丰富的用户交互体验。在实际项目中,结合其他触摸事件处理类如`GestureDetector`和`SwipeRefreshLayout`,可以实现更多复杂的...

    android click 和onTouch 事件处理机制.

    在Android开发中,点击事件(click)和触摸事件(onTouch)是两种常见的用户交互处理方式,它们在处理用户屏幕操作时起到了至关重要的作用。理解它们的事件处理机制是构建高效且响应良好的用户界面的关键。 首先,...

    Android onTouch机制

    在Android开发中,触摸事件处理是用户界面交互的基础,`onTouch`机制是这一过程的核心。本文将深入探讨Android的触摸事件处理流程,包括`dispatchTouchEvent`和`onTouchEvent`两个关键方法,以及如何通过日志来观察...

    android ontouch(记录滑动坐标)

    在Android开发中,`onTouch`事件监听器是处理用户触摸屏幕交互的重要工具。当我们想要追踪用户手指在屏幕上的滑动轨迹,例如实现一个虚拟触摸板(如`TouchpadDemo`项目所示),我们需要深入理解`MotionEvent`类以及...

    详细分析Android中onTouch事件传递机制

    总结来说,Android中的`onTouch`事件传递机制是一个从底层到高层,从子视图到父视图的逐层分发过程,视图可以选择处理事件或让事件继续冒泡。理解这一机制对于构建用户友好的触摸界面至关重要,它使得开发者能够精确...

    Android onTouchEvent事件中onTouch方法返回值(介绍)

    1、若return false说明没有成功执行onTouch事件,在执行完onTouch里面的代码之后,onTouch事件并没有结束。因此某些组件如Gallery会自动执行它所在view里onTouch方法的代码。若在onTouch方法里面增加你的代码并且...

    Android在Fragment中实现监听触摸事件

    "Android在Fragment中实现监听触摸事件" Android在Fragment中实现监听触摸事件是指在Android应用程序中,如何在Fragment中监听触摸事件。Fragment是Android应用程序中的一个组件,它可以在Activity中使用,但是它并...

    onTouch事件测试

    在实际应用中,`onTouch`事件常常与`OnClickListener`结合使用,因为`onTouch`可以捕捉到更丰富的触摸动作,而`OnClickListener`只能监听点击事件。需要注意的是,当同时设置`OnTouchListener`和`OnClickListener`时...

    onTouch事件的传递思维导图(完整版)

    onTouch事件的传递思维导图(完整版)

    Android获取在屏幕滑动速度的实例

    总结来说,通过Android的VelocityTracker类,我们可以轻松地获取屏幕滑动速度,从而实现更丰富的交互体验。在实际项目中,你可以根据具体需求调整速度阈值,以及结合其他手势检测技术,打造个性化的滑动操作。

    详谈Android中onTouch与onClick事件的关系(必看)

    在Android开发中,触摸事件处理是用户界面交互的关键部分,主要涉及到`onTouch`和`onClick`两个重要的事件监听器。这两个事件在处理用户点击行为时有着密切的关系,但它们的触发顺序和处理机制有所不同。 首先,...

    android view OnTouchEvent 中同时处理 onClick,onLongClick,和左右移动事件

    在Android开发中,`View`的触摸事件处理是至关重要的,特别是当我们需要同时处理点击、长按以及滑动事件时。`OnTouchEvent`是`View`接收触摸输入的主要方法,而`onClick`、`onLongClick`和左右移动事件则是在用户与...

Global site tag (gtag.js) - Google Analytics