getLocationOnScreen() 方法可以获取 View 在屏幕上的位置坐标。它返回一个包含两个元素的数组,分别表示 View 左上角在屏幕上的 x 坐标和 y 坐标。
使用该方法时,需要注意以下几点:
getLocationOnScreen() 方法需要在 View 已经被测量和布局完成之后才能正确获取位置信息。因此通常建议在 View 的 onWindowFocusChanged() 方法中调用该方法。
getLocationOnScreen() 方法返回的坐标是基于屏幕的绝对坐标,而不是相对于父容器的坐标。如果需要获取 View 相对于父容器的位置坐标,可以使用 getLocationInWindow() 方法。
获取的坐标是 View 左上角的坐标,如果需要获取其他点的坐标,可以通过计算 View 的宽度和高度来得到。
示例代码如下:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
int[] location = new int[2];
view.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
Log.d("Location", "x: " + x + ", y: " + y);
}
}
以上示例代码在 View 的 onWindowFocusChanged() 方法中获取 View 在屏幕上的坐标位置,并打印输出。这样可以确保 View 已经完成布局并且可见时才获取位置信息。