据我了解,当我们将 int[2] 位置数组传递给 view.getLocationOnScreen(location) 时,我们将获得该视图的左上角坐标。但是当我调试这个函数时,我看到那个位置返回到那个视图的右、顶坐标。我的屏幕是 480x800,视图的边距是 40,所以视图的右坐标是 440,它等于从 view.getLocationOnScreen(location) 返回的 location[0]。为什么位置 [0] 返回视图的正确坐标?
问问题
6901 次
2 回答
8
它是该视图的左上角坐标的精确返回。我得到了错误的值,因为在我调用 view.getLocationOnScreen(location) 之前我的视图仍未呈现。
于 2012-08-03T02:19:16.257 回答
0
为了确认接受的答案,根据 ; 的实现,坐标确实似乎是视图的左上角getLocationOnScreen
;此外,y 轴是倒置的。
public void getLocationOnScreen(@Size(2) int[] outLocation) {
getLocationInWindow(outLocation);
final AttachInfo info = mAttachInfo;
if (info != null) {
outLocation[0] += info.mWindowLeft;
outLocation[1] += info.mWindowTop;
}
}
于 2018-11-23T18:11:37.580 回答