当用户触摸屏幕时将创建一个MotionEvent对象。MotionEvent包含关于发生触摸的位置和时间等细节信息。MotionEvent对象被传递到程序中合适的方法比如View对象的onTouchEvent()方法中。在这些方法中我们可以分析MotionEvent对象那个,以决定要执行的操作。
MotionEvent对象是与用户触摸相关的时间序列,该序列从用户首次触摸屏幕开始,经历手指在屏幕表面的任何移动,直到手指离开屏幕时结束。手指的初次触摸(ACTION_DOWN操作),滑动(ACTION_MOVE操作)和抬起(ACTION_UP)都会创建MotionEvent对象。移动过程中会产生大量事件,每个事件都会产生对应的MotionEvent对象记录发生的操作,触摸的位置,使用的多大压力,触摸的面积,合适发生,以及最初的ACTION_DOWN和时发生等相关的信息。
在设置事件时我们有2中设置的方式,一种是委托式一种是回调式。第一种就是将事件的处理委托给监听器处理,你可以定义一个View.OnTouchListener接口的子类作为监听器,其中有onTouch()方法。而第二种是重写View类自己本身的onTouchEvent方法,也就是控件自己处理事件。onTouch方法接收一个MotionEvent参数和一个View参数,而onTouchEvent方法仅接收MotionEvent参数。这是因为监听器可以监听多个View控件的事件。无论是通过onTouchEvent还是onTouch方法 它们的返回值都是boolean类型。true的含义是如果当前处理程序在处理完毕该事件后不希望传播给其他控件,则返回true。如果View对象不但对此事件不感兴趣,而且对与此触摸序列相关的任何未来事件都不感兴趣,那么返回false。比如如果Button的onTouchEvent方法想要处理用户的一次点击 则会有2个事件产生ACTION_DOWN和ACTION_UP,按道理这两个事件都会调用onTouchEvent方法,如果方法返回false则在按下时你可以做一些操作,但是手指抬起时你将不能再接收到MotionEvent对象了,所以你也就无从处理抬起事件了。
分享到:
相关推荐
当用户在屏幕上点击、滑动或者做出其他手势时,Android系统会生成MotionEvent对象来封装这些动作的详细信息。这个类包含了事件类型、坐标、时间戳等关键数据,使得开发者能够精确地追踪到用户的每一个动作。 ...
在Android中,当用户与屏幕交互时,系统会生成一系列的MotionEvent对象,并通过View的`onTouchEvent`方法传递给开发者。这个方法会接收到一系列的事件,包括ACTION_DOWN(手指触摸屏幕)、ACTION_MOVE(手指在屏幕上...
首先,`MotionEvent`对象会在用户与屏幕交互时由系统自动创建并传递给相应的`OnTouchListener`或者`OnClickListener`。通过监听这些事件,开发者可以获取到手指在屏幕上的位置信息,以便进行各种交互操作,如拖动、...
`MotionEvent`对象包含了触摸事件的所有信息,如事件类型(ACTION_DOWN, ACTION_UP, ACTION_MOVE等)、事件发生的坐标、触点的数量以及触点的压力等。在`MotionEvent`中,坐标通常是以浮点数`float`的形式表示,这是...
在 Android 平台上,手势识别可以通过使用 MotionEvent 对象来实现,MotionEvent 对象提供了对触摸事件的详细信息,包括触摸的坐标、压力、大小等信息。然而,随着 Android 版本的演进,手势识别的实现方法也在不断...
在Android系统中,每一次手势交互都会依照以下顺序执行。 1. 接触接触屏一刹那,触发一个MotionEvent事件。 2. 该事件被OnTouchListener监听,在其...3. 通过GestureDetector(手势识别器)转发次MotionEvent对象。
每个MotionEvent对象包含了一个ACTION_常量,如ACTION_DOWN(触摸开始)、ACTION_UP(触摸结束)和ACTION_MOVE(触摸移动)等,开发者可以根据ACTION_常量来判断用户的操作。 2. onTouchEvent()方法: 当用户触摸...
MotionEvent对象携带着触摸事件的所有信息,包括事件类型、坐标、时间戳等。开发者可以通过MotionEvent的方法,如getX()和getY()来获取当前触摸点的坐标,用以绘制轨迹曲线。 3. 绘制轨迹曲线: 在Android中,...
在GestureDetector的回调方法中,我们可以获取MotionEvent对象,分析其ACTION_DOWN, ACTION_MOVE和ACTION_UP等动作,以此判断和识别手势。 4. **Fling手势**:在onFling()方法中,我们可以通过比较两个MotionEvent...
当用户在屏幕上进行触摸操作时,系统会生成一系列MotionEvent对象,这些对象包含了触摸事件的类型(ACTION_DOWN、ACTION_UP、ACTION_MOVE等)、坐标位置以及其他相关信息。开发者可以通过重写`onTouchEvent()`,捕获...
每当手指移动时,系统都会发送ACTION_MOVE事件,开发者可以通过这个事件的MotionEvent对象获取到当前触摸点的坐标。 例如,在Android中,MotionEvent对象的getX()和getY()方法分别返回了触摸点相对于视图左上角的X...
当用户在屏幕上触摸时,系统会生成一系列MotionEvent对象,包含触点的位置、动作类型等信息。开发者需要在Activity或View中重写`onTouchEvent()`方法来捕获这些事件,然后根据事件类型(ACTION_DOWN、ACTION_MOVE、...
2. MotionEvent:当用户触摸屏幕时,系统会生成MotionEvent对象,它包含了关于触摸事件的所有信息,如坐标、时间戳、动作类型(ACTION_DOWN、ACTION_UP、ACTION_MOVE等)。 二、滑动手势处理 1. OnGestureListener...
当用户与屏幕交互时,系统会传递MotionEvent对象到此方法。我们可以通过分析MotionEvent的动作类型(ACTION_DOWN, ACTION_MOVE, ACTION_UP等)来追踪用户的触控轨迹,进而绘制出相应的线条或形状。 3. **...
事件通常由用户的触摸输入触发,如按下、移动和释放等,这些事件被封装在MotionEvent对象中。视图是用户界面的基本元素,如按钮、文本框等,它们可以接收并处理事件。事件分发链则是系统决定事件如何从根视图分发到...
3. **MotionEvent对象**:它是Android中的一个类,用于封装触摸事件的详细信息,如坐标、动作类型等。在处理手势时,`MotionEvent`对象会被传递给`GestureDetector`的回调方法。 4. **AndroidManifest.xml**:这是...
在Android开发领域,SuperMap iClient是一款强大的地理信息系统(GIS)库,它为开发者提供了丰富的地图操作和空间分析功能。本篇文章将详细讲解如何利用SuperMap iClient for Android实现绘制圆对象,帮助开发者在...
在onTouchEvent()方法中,你需要处理MotionEvent对象,然后调用GestureDetector的onTouchEvent()来检测手势。 在"gesture-demo"项目中,你可能会看到这样的代码片段,将MotionEvent传递给GestureDetector: ```...