首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OnTouchEvent:我想在屏幕上用另一个手指移动时识别触摸

OnTouchEvent是一个Android开发中的方法,用于识别屏幕上的触摸事件。当用户在屏幕上触摸、滑动或释放手指时,系统会调用该方法来处理相应的触摸事件。

在Android开发中,OnTouchEvent方法通常被重写,以便在用户与屏幕进行交互时执行特定的操作。该方法接收一个MotionEvent对象作为参数,该对象包含了触摸事件的详细信息,如触摸的位置、动作类型等。

要在屏幕上用另一个手指移动时识别触摸,可以通过以下步骤实现:

  1. 重写Activity或View的OnTouchEvent方法。
  2. 在OnTouchEvent方法中,通过判断MotionEvent的动作类型来执行相应的操作。例如,可以使用MotionEvent.ACTION_DOWN来检测手指按下的事件,MotionEvent.ACTION_MOVE来检测手指移动的事件,MotionEvent.ACTION_UP来检测手指抬起的事件。
  3. 在移动事件中,可以通过获取MotionEvent的getX()和getY()方法来获取手指的当前位置,并进行相应的处理。可以使用这些坐标来计算手指的移动距离、方向等。
  4. 根据需求,可以使用其他相关的方法和属性来进一步处理触摸事件,如判断手指的数量、处理多点触控等。

腾讯云提供了一系列与移动开发相关的产品和服务,可以帮助开发者构建高效、安全的移动应用。以下是一些推荐的腾讯云产品和产品介绍链接地址:

  1. 腾讯移动分析(https://cloud.tencent.com/product/ma):提供移动应用数据分析和统计服务,帮助开发者了解用户行为、应用性能等关键指标。
  2. 腾讯移动推送(https://cloud.tencent.com/product/tpns):提供消息推送服务,支持向移动设备发送实时消息、通知等。
  3. 腾讯移动直播(https://cloud.tencent.com/product/mlvb):提供高清、稳定的移动直播服务,支持在移动应用中实现实时音视频传输和互动。
  4. 腾讯移动应用安全(https://cloud.tencent.com/product/ms):提供移动应用安全防护服务,包括应用加固、漏洞扫描、反编译防护等功能。

以上是关于OnTouchEvent方法和与移动开发相关的腾讯云产品的介绍。希望对您有帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android中View位置和触摸事件详解

本文Demo都是在自定义View中进行的,文末有下载链接 View的位置参数 MotionEvent屏幕触摸事件 GestureDetector手势检测(单击,双击,长摁,滑动) 二、View的位置参数...context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } 三、MotionEvent 1、手指触摸屏幕后产生的事件...,典型事件如下: ACTION_DOWN–手指触摸屏幕 ACTION_MOVE–手指屏幕移动 ACTION_UP–手指屏幕分开的一瞬间 2、MotionEvent获取点击事件发生的坐标 getX...,但是这样会无法识别长按事件 mGestureDetector.setIsLongpressEnable(false); 接管目标View的onTouchEvent方法 return mGestureDetector.onTouchEvent...实现方式:获取到当前手指按下的位置,移动要减去上次手指滑动的位置,然后在加上偏移量 存在问题:OnClick方法貌似没法用了哦,大概是因为在onTouchEvent方法中拦截了吧 改进:觉得可以

1.4K51

札记:android手势识别,MotionEvent

在安卓触屏系统中,支持单点、多点(点通常就是手指触摸,每个点有按下,移动和抬起。 触屏交互的处理分不同触屏操作——手势的识别,然后是根据业务对应不同处理。为了响应不同的手势,首先就需要识别它们。...识别过程就是跟踪收集系实时提供的反应用户在屏幕的动作的"基本事件",然后根据这些数据(事件集合)来判定出各种不同种类的高级别的“动作”。...Gestures 用户手指(一或多个)按下和最终完全离开屏幕的过程为一次触屏操作,每次操作都可归类为不同触摸模式(touch pattern),最终被定义为不同的手势(手势和模式的定义是设计的,用户在使用任何触屏设备后都会学习到不同的手势...ACTION_MOVE 非最后一个手指抬起触发ACTION_POINTER_UP 最后离开屏幕触发ACTION_UP 触摸事件序列被中断触发ACTION_CANCEL,一般是对应View的parent...实现的重点是对移动距离的检测,按照设计,从第一个手指触摸目标View引发down操作开始,只要还有手指处于触摸状态,就检测对应手指移动移动View。

5K70

Android 中 View 的手势事件处理

获取 y 方向上的移动速度 velocityTracker.getYVelocity(); 下面我们通过一个小例子来具体的看一下怎么使用,假设我们要在屏幕上自由的移动手指,并且随时把手指的坐标和在 X...接下来,我们要自定义一个控件,然后重写 onTouchEvent 方法用于检测我们的手指移动触摸信息并且传递给两个 TextView 控件。...其实,对于 View 的触摸事件的处理,Android还提供了另一个方法:通过 GestureDetector 类(手势识别)和 这个类里面的提供的3个接口和一个类,先看一下官方文档: ?...; } // 手指触摸控件还未移动或者松开的时候(强调还未移动或者松开),对应动作:MotionEvent.ACTION_DOWN public void...最后还有一个问题:当一个 View 中既有 onTouchEvent 方法并且设置了 OnTouchListener 接口,情况是怎样的呢?

1.4K20

Android事件分发机制的详解

一个手势(gesture)是一个事件列,以一个DOWN事件开始(当用户触摸屏幕产生),后跟0个或多个MOVE事件(当用户四处移动手指产生),最后跟一个单独的UP或CANCEL事件(当用户手指离开屏幕或者系统告诉你手势...当我们说到“手势剩余部分”指的是手势后续的MOVE事件和最后的UP或CANCEL事件。 在这里也不考虑多点触摸手势(我们只假设一个手指)并且忽略多个MOVE事件可以被归为一组这一实际情况。...假设用户首先触摸到的屏幕的点是C的某个点,该点被标记为触摸点(touch point),DOWN事件就在该点产生。...然后用户移动手指并最后离开屏幕,此过程中手指是否离开C的区域无关紧要,关键是手势(gesture)是从哪里开始的。...当用户仅仅在它的区域内点击(tap),被点击到的元素应当能处理该点击事件。但是当用户手指移动了一定的距离后,就不能再视该手势(gesture)为点击了——很明显,用户是想scroll。

95431

可能是讲解Android事件分发最好的文章

一个手势(gesture)是一个事件列,以一个DOWN事件开始(当用户触摸屏幕产生),后跟0个或多个MOVE事件(当用户四处移动手指产生),最后跟一个单独的UP或CANCEL事件(当用户手指离开屏幕或者系统告诉你手势...当我们说到“手势剩余部分”指的是手势后续的MOVE事件和最后的UP或CANCEL事件。 在这里也不考虑多点触摸手势(我们只假设一个手指)并且忽略多个MOVE事件可以被归为一组这一实际情况。...假设用户首先触摸到的屏幕的点是C的某个点,该点被标记为触摸点(touch point),DOWN事件就在该点产生。...然后用户移动手指并最后离开屏幕,此过程中手指是否离开C的区域无关紧要,关键是手势(gesture)是从哪里开始的。...当用户仅仅在它的区域内点击(tap),被点击到的元素应当能处理该点击事件。但是当用户手指移动了一定的距离后,就不能再视该手势(gesture)为点击了——很明显,用户是想scroll。

60020

高级 UI 成长之路 (一) View的基础知识你必须知道

*MotionEvent.ACTION_MOVE:** 手指屏幕滑动 * **MotionEvent.ACTION_UP:** 手指屏幕抬起的一瞬间触发该事件 正常情况下,一次手指触摸屏幕的行为会触发一些列点击事件...**TouchSlop** TouchSlop 官方解释就是系统所能识别的被认为是滑动的最小距离,通俗点说就是当手指屏幕滑动,如果两次滑动之间的距离小于这个常量,那么系统就认为你没有在滑动,可以通过下面的...在触摸事件为 ACTION\_DOWN或是进入 onTouchEvent方法,通过 obtain获取一个 VelocityTracke 在触摸事件为 ACTION\_UP,调用 recycle进行释放...| 手指(轻轻触摸屏幕后)松开,伴随着 1 个 MotinEvent.ACTION_UP 而触发,这是单击行为 | | onScroll | 手指按下屏幕并拖动,由 1 个 ACTION_DOWN ,.../ scrollTo 对 View 滑动,只能将 View 的内容进行移动,并不能将 View 本身进行移动

71610

神奇的 ViewDragHelper,让你轻松定制拥有拖拽能力的 ViewGroup

交互分析 手指触摸在 ViewGroup 。 如果触摸的坐标正好落在某个 childView 上面。拖拽开始。 手指开始移动,childView 位置坐标改变。拖拽进行。...onTouchEvent() 在这个方法中,ViewGroup 用来处理触摸的具体流程。也就是对应上图的触摸移动、释放手指。...在 Android 中 MotionEvent 封装了触摸的各种状态。所以我们主要处理的状态有以下: 1. MotionEvent.ACTION_DOWN: 在这个状态,标记手指按下屏幕。...上面的代码,都是假设手指离开屏幕后,child 停留在新的坐标上,如果我们的需求就释放手指后 child 移动回原来的位置,那么怎么做呢? 其实答案很简单,我们需要做如下工作: 1....当然,演示的时候是的继承的 FrameLayout,而实际要做的工作还很多,大家可以尝试用 RecyclerView 来实现它。

3.2K22

事件分发工作流程

主要对象与方法 事件分发的对象 当我们手机触碰屏幕时会产生一系列的MotionEvent对象,根据触摸的情况不同,这些对象的类型也会不同。...具体如下: ACTION_DOWN: 表示手指按下屏幕 ACTION_MOVE: 手指屏幕滑动,会产生一系列的MOVE事件 ACTION_UP: 手指抬起,离开屏幕 ACTION_CANCEL:当出现异常情况事件序列被中断...,会产生该类型事件 ACTION_POINTER_DOWN: 当已经有一个手指按下的情况下,另一个手指按下会产生该事件 ACTION_POINTER_UP: 多个手指同时按下的情况下,抬起其中一个手指会产生该事件...举个栗子: 当我手指按下屏幕产生了一个down事件,只有一个view消费了这个down事件,那么接下来手指滑动屏幕产生的move事件会且仅会给这个view消费。...:在viewGroup收到触摸事件,会先去调用 onInterceptTouchEvent 方法判断是否拦截,如果拦截则调用自己的 onTouchEvent 方法处理事件,否则调用子view的 dispatchTouchEvent

70310

Android 触摸屏交互之手势监听

前言 2020年,智能手机大行其道,相信不会还有人用着老式的按键手机了吧,而智能手机最大的交互就是手机屏幕,其次的就是音量操作、生物识别(指纹+人脸+瞳孔)、说白了的最多的是手机的屏幕屏幕与用户之前进行交互...正文 屏幕的交互当然首先是触摸,说道触摸就是有一个手势监听,这个是Google起的名字,你不用手难道脚吗? 下面可以新建一个项目,在MainActivity中实现两个监听 ?...e) { return false; } onShowPress /** * 当用户在屏幕按下,并且既没有移动有没有抬起手指,会触发该方法。...return detector.onTouchEvent(e); } 然后就可以在各个方法中进行数据的处理和显示了 /** * 当用户在屏幕按下时会触发该方法,但在移动或抬起手指不会触发...,并且既没有移动有没有抬起手指,会触发该方法。

1.6K30

android 触屏处理流程,android触摸事件处理流程 ? FOOKWOOD「建议收藏」

最近在工作中,经常需要处理触摸事件,但是有时候会出现一些奇怪的bug,比如有时候会检测不到ACTION_MOVE和ACTION_UP,决定下决心写个测试的小程序,来研究一个触摸事件从上往下是怎么传递和处理的...是不是按下,移动,松开的流程都是按照这样处理的呢?答案是否定的。...来到FrameLayout这一层的时候,就不再需要通过onInterceptTouchEvent拦截了,直接onTouchEvent处理。...当第一个手指按下的时候,会产生ACTION_DOWN,当第二个手指按下的时候,会产生ACTION_POINTER_DOWN,第三个或者更多手指按下的时候,也是ACTION_POINTER_DOWN,如果此时有一个手指离开屏幕...,会产生ACTION_POINTER_UP,当最后一个手指离开屏幕的时候,才会产生ACTION_UP。

49120

View的滑动方式 详细介绍

上图圆点是手指触摸点,蓝色的是MotionEvent的方法,点击事件走到onTouchEvent,获得点击事件的各种坐标:getX、getY是相对view;getRawX、getRawY是相对屏幕。...例如相册的图片,手指快速左右滑动会切换图片,慢则不会切换。获取速度前,要先调用computeCurrentVelocity计算速度,如下代码。效果是手指滑的快,就会弹Toast。...或者,换一种理解方式(个人感觉这个更好理解):scrollBy、scrollTo移动的就是view本身,而view的内容不动,只不过此时屏幕也随view本身一起移动,视觉就是 view的内容 就会反向移动...例如,使用view.scrollBy(100,0),那么view和屏幕一起右移100,即视觉view的内容左移100。...所以要让view的内容视觉右移100,需要view的父view左移100,view.scrollBy(-100,0)。所以,上面getParent,而且传的是负值。

98600

android获取手指触摸位置的方法

本文实例为大家分享了android获取手指触摸位置的具体代码,供大家参考,具体内容如下 手机屏幕事件的处理方法onTouchEvent。...其原型是: public boolean onTouchEvent(MotionEvent event) 参数event:参数event为手机屏幕触摸事件封装类的对象,其中封装了该事件的所有信息,例如触摸的位置...该对象会在用户触摸手机屏幕被创建。 返回值:该方法的返回值机理与键盘响应事件的相同,同样是当已经完整地处理了该事件且不希望其他回调方法再次处理返回true,否则返回false。...屏幕被抬起:当触控笔离开屏幕触发的事件,该事件同样需要onTouchEvent方法来捕捉,然后在方法中进行动作判断。...抬起还是处于移动

2.5K10

Android开发的多点触控是如何实现的?

在多点触控,我们可以通过代码来获取当前移动的是哪根手指。 多点触控 1 识别按下的手指 上面讲解了在什么情况下会触发什么消息,但我们怎么来识别当前按下的是哪根手指呢?...因此,我们通过event.getPointerCount可以得到当前屏幕手指个数。...可以看到,第2根手指触摸点,我们使用白色圆圈显示,无论第3根手指是否按下,还是其他手指是否抬起,白色圆圈总是跟着第2根手指移动来显示。这就实现了跟踪第2根手指轨迹的效果。...2 onTouchEvent 然后,在用户按下手指,需要加以判断,当前是第几根手指,然后获取第2根手指的位置,下面列出完整代码: public boolean onTouchEvent(MotionEvent...,把haveSecondPoint设为false,白色圆圈从屏幕消失。

95920

Android事件分发全面解析(基础篇)-夯实基础

当用户触摸屏幕( View 或 ViewGroup 派生的控件),将产生点击事件(Touch事件) Touch事件相关细节,比如触摸位置,时间,手势等等,会被封装成 MotionEvent 对象。...Touch 事件主要有以下几种: 事件 简介 ACTION_DOWN 手指 初次接触到屏幕 触发。 ACTION_MOVE 手指屏幕滑动 触发,会会多次触发。...ACTION_UP 手指 离开屏幕 触发。 ACTION_CANCEL 事件 被上层拦截 触发。...事件列:从手指接触屏幕手指离开屏幕,这个过程产生一系列时间,任何时间都是以Down事件开始,UP事件结束,中间会有无数Move事件。...event) { Log.e("demo","viewgroup-不消费"); return false; } 手指-> button 按下轻轻移动: 结论

51320

Android Studio 知识储备 之 ✨-基础知识学习历程

:boolean onTouchEvent(MotionEvent event); 在该组件按下某个按钮:boolean onKeyDown(int keyCode,KeyEvent event);...3.多点触碰 原理类的东西: 所谓的多点触碰就是多个手指屏幕上进行操作,的最多的估计是放大缩功能吧,比如很多的图片浏览器都支持缩放!...理论Android系统本身可以处理多达256个手指触摸,当然这取决于手机硬件的支持;不过支持多点触摸的手机一般支持2-4个点,当然有些更多!...简单的流程大概是这样: 当我们一个手指触摸屏幕 ——> 触发ACTION_DOWN事件 接着有另一个手指触摸屏幕 ——> 触发ACTION_POINTER_DOWN事件,如果还有其他手指触摸,继续触发...9.Gestures(手势) 1.Android中手势交互的执行顺序 1.手指触碰屏幕,触发MotionEvent事件!

61630

Android自定义系列——14.MotionEvent

单点触控 事件 简介 ACTION_DOWN 手指 初次接触到屏幕 触发。 ACTION_MOVE 手指屏幕滑动 触发,会多次触发。 ACTION_UP 手指 离开屏幕 触发。...ACTION_MOVE 手指屏幕滑动 触发,会多次触发。 ACTION_UP 最后一个 手指 离开屏幕 触发。...ACTION_POINTER_DOWN 有非主要的手指按下(即按下之前已经有手指屏幕)。 ACTION_POINTER_UP 有非主要的手指抬起(即抬起之后仍然有手指屏幕)。...(down)和抬起(up)是有用的,在移动(move)是没有用的,事件追踪非常重要的一环就是移动(move) 追踪事件流,请认准 PointId,不能通过ActionIndex PointId 在手指按下产生...用不同的设备对这两个方法进行了测试,然而不同设备测试出来的结果不相同,之后经过多方查证,发现是系统问题,有的设备只有 getSize() 能用,有的设备只有 getPressure() 能用,而有的则两个都不能用

1.5K10

Android 事件分发机制

首先我们的手指屏幕接触的MotionEvent对象会产生一系列事件,它有四种状态: MotionEvent对象的四种状态: MotionEvent.ACTION_DOWN:手指按下屏幕的瞬间 MotionEvent.ACTION_MOVE...:手指屏幕移动 MotionEvent.ACTION_UP:手指离开屏幕瞬间 MotionEvent.ACTION_CANCEL :取消手势,一般由程序产生 事件分发所涉及的主要方法: 1.1 dispatchTouchEvent...1.4 onTouch 是触摸事件,当一个触摸事件被分发到一个view的时候。...1.5 onTouchEvent 真正用来处理触摸事件的最后调用的方法, onTouchEvent是否拦截取决于down事件。...image.png ACTION_CANCEL的出现时机 ACTION_CANCEL的出现场景为:手指点击屏幕停顿,让系统以为view的onTouchEvent要消费此事件的时候滑动,在onInterceptTouchEvent

1.5K21

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券