91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

android如何獲取view位置

小億
104
2024-09-03 09:39:55
欄目: 編程語言

在Android中,要獲取一個View的位置,可以使用以下方法:

  1. 使用getLocationOnScreen()getLocationInWindow()方法。這兩個方法都會返回一個包含x和y坐標的int數組。
int[] location = new int[2];
view.getLocationOnScreen(location); // 或者使用 view.getLocationInWindow(location);
int x = location[0];
int y = location[1];

getLocationOnScreen()方法返回的是View在整個屏幕上的位置,而getLocationInWindow()方法返回的是View在當前窗口(Window)中的位置。

  1. 使用ViewTreeObserver。你可以為View設置一個全局布局監聽器,然后在回調方法中獲取View的位置。
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        int[] location = new int[2];
        view.getLocationOnScreen(location); // 或者使用 view.getLocationInWindow(location);
        int x = location[0];
        int y = location[1];

        // 移除監聽器,避免重復調用
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
        } else {
            view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
        }
    }
});

請注意,這種方法可能會在View布局完成時多次調用。因此,在獲取到位置信息后,建議移除監聽器以避免不必要的性能開銷。

0
安顺市| 蓝田县| 雷州市| 岳普湖县| 沙洋县| 凯里市| 靖远县| 许昌县| 秭归县| 天柱县| 云浮市| 高要市| 舒城县| 阜新| 岳阳市| 繁峙县| 绵竹市| 沽源县| 全南县| 陆丰市| 德格县| 和静县| 翁牛特旗| 江陵县| 姚安县| 富川| 玛纳斯县| 崇信县| 增城市| 永福县| 监利县| 浦城县| 杭锦后旗| 虎林市| 女性| 峨边| 威远县| 厦门市| SHOW| 五河县| 红桥区|