获取相对于父元素的触摸事件坐标

9

我有一个线性布局,其中包含一张图片。我正在尝试获取与该图片相关的在父容器中的触摸事件坐标。您知道我怎么可以获得这些吗?getX和getY返回相对于自身的位置。

2个回答

25

MotionEvent类有两个方法,getX()用于获取与该视图对应的X触摸点,getRawX()用于获取与屏幕对应的X触摸点。

因此,要获取与父视图对应的X触摸点,您可以通过简单的计算来获取:

     view.getLeft() + motionEvent.getX()

getLeft() 返回此视图相对于其父视图的左侧位置。


谢谢您提供的详细信息,我想我应该接受它作为正确答案,因为它更加解释了正在发生的事情。谢谢。 - Snake

6

试试这个:

public boolean onTouch(View v, MotionEvent event) {

    System.out.println((v.getLeft() + event.getX()) + "," + (v.getTop() + event.getY()));
    return false;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接