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

1300
2023/8/19 19:57:47
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

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

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: android windowinsets如何处理虚拟导航栏