如何获取视图相对于根布局的坐标?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我可以在Android中获得View的x和y位置吗?

提问于
用户回答回答于

这是一个解决方案,但是由于API随着时间的推移而改变,并且可能有其他方式来执行此操作,请务必检查其他答案。一个声称速度更快,另一个声称更容易。

private int getRelativeLeft(View myView) {
    if (myView.getParent() == myView.getRootView())
        return myView.getLeft();
    else
        return myView.getLeft() + getRelativeLeft((View) myView.getParent());
}

private int getRelativeTop(View myView) {
    if (myView.getParent() == myView.getRootView())
        return myView.getTop();
    else
        return myView.getTop() + getRelativeTop((View) myView.getParent());
}

让我知道这是否有效。

它应该递归地添加每个父容器的顶部和左侧位置。Point如果你愿意,你也可以用它来实现它。

用户回答回答于

请使用view.getLocationOnScreen(int[] location);(请参阅Javadocs)。答案是在整数数组(x = location[0]和y = location[1])中。

扫码关注云+社区