MotionEvent的getX()和getRawX()的区别

在自定义View的过程中,我们总是会接触到MotionEvent对象,而总是会对该对象的getX(),getY()和getRawX(),getRawY()的表示的意思模糊不清,遂写下这篇博客,以便帮助和我一样,曾经被这个问题困扰的学者。

getX():表示控件相对于自己左上角为原点的X坐标

getRawX():表示相对于以屏幕左上角为原点的X坐标(该屏幕左上角是手机屏幕左上角,不管该Activity是否有titleBar或者是否是全屏)

如果对前面的解释还是不太清楚,那么不用着急,相信你在看完下面的分析后,一切疑问便会烟消云散了大笑

MotionEvent的getX()和getRawX()的区别_第1张图片

通过上图可知:

getRawX():触摸点相对于屏幕的坐标

getX():触摸点相对于自身的坐标

getTop():按钮左上角相对于父View的y坐标

以此,可以得出getRight() = getLeft() +getWidth()

你可能感兴趣的:(MotionEvent的getX()和getRawX()的区别)