getLocationOnScreen() 方法可以獲取 View 在屏幕上的位置坐標。它返回一個包含兩個元素的數(shù)組,分別表示 View 左上角在屏幕上的 x 坐標和 y 坐標。
使用該方法時,需要注意以下幾點:
getLocationOnScreen() 方法需要在 View 已經(jīng)被測量和布局完成之后才能正確獲取位置信息。因此通常建議在 View 的 onWindowFocusChanged() 方法中調(diào)用該方法。
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 已經(jīng)完成布局并且可見時才獲取位置信息。