租用问题

质量为本、客户为根、勇于拼搏、务实创新

< 返回租用问题列表

AndroidMotionEvent中getX()和getRawX()的不同

发布时间:2023-08-07 07:56:01

AndroidMotionEvent中getX()和getRawX()的不同

在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()。