Linux 拨号vps windows公众号手机端

AndroidMotionEvent中getX()和getRawX()的区别

lewis 6年前 (2019-02-04) 阅读数 11 #程序编程
文章标签 android

在Android中,MotionEvent是用于描述触摸事件的类。getX()和getRawX()是MotionEvent类中获取触摸点x坐标的方法,但它们有一些区别。

  1. getX()方法返回的是相对于当前View的坐标值。如果触摸事件发生在View的左上角,getX()返回0,如果触摸事件发生在View的右下角,getX()返回View的宽度。

  2. getRawX()方法返回的是相对于屏幕的坐标值,即触摸事件发生的绝对位置。不受当前View的位置或滚动等影响。

举个例子来说,如果一个View在屏幕上的坐标是(100, 200),用户点击了View的左上角,那么getX()返回0,getRawX()返回100。如果View发生了滚动,getX()仍然返回0,但getRawX()返回的值可能会发生变化。

因此,getX()和getRawX()提供了不同层级的坐标信息,开发者可以根据需要选择使用哪一个。如果需要获取相对于当前View的坐标值,使用getX();如果需要获取触摸事件的绝对位置,使用getRawX()。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门