motionevent(MotionEventobtain 参数)

张工 2022-05-25 18:43:40 阅读:28
  

Android MotionEvent中getX和getRawX的区别

  看应用程序接口文档:

  公共最终浮点getX(int指针索引)

  针对给定的指针索引返回该事件的X坐标(使用getPointerId(int)查找该索引的指针标识符)。整数是像素;对于亚像素精度的输入设备,该值可能有一部分。

  公共最终浮点getRawX()

  返回此事件的原始X坐标。对于屏幕上的触摸事件,这是事件在屏幕上的原始位置,在针对包含的窗口和视图进行调整之前。

  大概意思应该是说,getRawX()获取的是屏幕上的原生(原始原始)x坐标,而getX(int pointerIndex)只是说获取的是指定的触控点坐标,getX()就是获取第一个触控点的坐标。所以,getRawX()就是说,获取的是相对于屏幕左上角的x坐标,而getX()是获取相对控件左上角的x坐标。如果某个活动中实现ontouchlistener接口,需要重写本体(视图视图,运动事件事件)这个方法,getrawx()和getrawy()获得的是相对屏幕的位置,getx()和gety()获得的永远是相对视角的触摸位置坐标(这两个值不会超过视角的长度和宽度)。

  rawx,rawy相对于屏幕位置坐标

  x,y相对于容器的位置坐标

motionevent

为什么不响应motionEvent.action_up?

  问题解决了!末尾返回错误的改成返回真实的我的是这样解决的,就不知道是否适用楼主的问题了!返回super.onTouchEvent(事件);试试这个这四个事件向下、移动、向上、取消没有起来肯定会有取消

二维码