转载:http://goro.iteye.com/blog/402163
今天又学了一点关于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:
里来写对应的代码。。。
分享到:
相关推荐
本文将深入探讨`onTouch`事件在Android中的应用,以及如何利用它来实现丰富多彩的用户交互。 一、`MotionEvent`:触摸事件的基础 `MotionEvent`是Android中用于表示触摸屏幕事件的类,它包含了与触摸事件相关的所有...
在Android开发中,触摸事件处理是非常关键的一部分,特别是在创建用户交互丰富的应用时。`onTouch`事件是Android UI系统中的核心事件,它涉及到用户与屏幕的直接交互。本篇文章将详细探讨Android的`onTouch`事件,...
在Android开发中,触摸事件处理是用户界面交互的关键部分,`onTouch`事件是其中的核心机制。本篇文章将深入探讨Android的`onTouch`事件传递机制,帮助开发者更好地理解和运用这一功能。 首先,Android的触摸事件...
本篇文章将深入探讨Android中处理`ontouch`事件的三种常见方式:通过接口实现、使用内部类以及利用匿名内部类。理解并熟练掌握这三种方式,对于提升Android应用的交互体验至关重要。 首先,我们来看第一种方式——...
在Android开发中,手势操作是用户与应用交互的重要方式之一,`onTouch`事件是实现手势操作的基础。...通过熟练掌握`onTouch`事件处理和手势检测工具的使用,开发者可以构建出更加丰富多彩的交互式应用。
`OnTouchListener`是Android中的一个接口,它定义了`onTouch(View view, MotionEvent event)`方法,用于监听视图上的触摸事件。`MotionEvent`对象包含了关于触摸事件的所有信息,如动作类型(ACTION_DOWN, ACTION_UP...
在Android开发中,创建悬浮窗(FloatWindow)是一种常见的需求,它可以实现类似系统通知栏、桌面小部件等...通过这种方式,我们可以在Android悬浮窗上实现onTouch和onClick事件的并存,为用户提供更丰富的交互体验。
了解这些机制和注意事项,可以帮助开发者更高效、更准确地使用`OnTouch`事件,创造出更加丰富的用户交互体验。在实际项目中,结合其他触摸事件处理类如`GestureDetector`和`SwipeRefreshLayout`,可以实现更多复杂的...
在Android开发中,点击事件(click)和触摸事件(onTouch)是两种常见的用户交互处理方式,它们在处理用户屏幕操作时起到了至关重要的作用。理解它们的事件处理机制是构建高效且响应良好的用户界面的关键。 首先,...
在Android开发中,触摸事件处理是用户界面交互的基础,`onTouch`机制是这一过程的核心。本文将深入探讨Android的触摸事件处理流程,包括`dispatchTouchEvent`和`onTouchEvent`两个关键方法,以及如何通过日志来观察...
在Android开发中,`onTouch`事件监听器是处理用户触摸屏幕交互的重要工具。当我们想要追踪用户手指在屏幕上的滑动轨迹,例如实现一个虚拟触摸板(如`TouchpadDemo`项目所示),我们需要深入理解`MotionEvent`类以及...
总结来说,Android中的`onTouch`事件传递机制是一个从底层到高层,从子视图到父视图的逐层分发过程,视图可以选择处理事件或让事件继续冒泡。理解这一机制对于构建用户友好的触摸界面至关重要,它使得开发者能够精确...
1、若return false说明没有成功执行onTouch事件,在执行完onTouch里面的代码之后,onTouch事件并没有结束。因此某些组件如Gallery会自动执行它所在view里onTouch方法的代码。若在onTouch方法里面增加你的代码并且...
"Android在Fragment中实现监听触摸事件" Android在Fragment中实现监听触摸事件是指在Android应用程序中,如何在Fragment中监听触摸事件。Fragment是Android应用程序中的一个组件,它可以在Activity中使用,但是它并...
在实际应用中,`onTouch`事件常常与`OnClickListener`结合使用,因为`onTouch`可以捕捉到更丰富的触摸动作,而`OnClickListener`只能监听点击事件。需要注意的是,当同时设置`OnTouchListener`和`OnClickListener`时...
onTouch事件的传递思维导图(完整版)
总结来说,通过Android的VelocityTracker类,我们可以轻松地获取屏幕滑动速度,从而实现更丰富的交互体验。在实际项目中,你可以根据具体需求调整速度阈值,以及结合其他手势检测技术,打造个性化的滑动操作。
在Android开发中,触摸事件处理是用户界面交互的关键部分,主要涉及到`onTouch`和`onClick`两个重要的事件监听器。这两个事件在处理用户点击行为时有着密切的关系,但它们的触发顺序和处理机制有所不同。 首先,...
在Android开发中,`View`的触摸事件处理是至关重要的,特别是当我们需要同时处理点击、长按以及滑动事件时。`OnTouchEvent`是`View`接收触摸输入的主要方法,而`onClick`、`onLongClick`和左右移动事件则是在用户与...