中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

android如何獲取view寬高

小億
84
2024-09-03 19:05:31
欄目: 編程語言

在Android中,獲取View的寬高需要在View布局完成后進行。可以通過以下方法獲取View的寬高:

  1. 使用ViewTreeObserver

在View創建完成后,可以使用ViewTreeObserver來監聽View的布局變化。當View的寬高發生變化時,會回調OnGlobalLayoutListener接口。這時可以獲取到View的寬高。

示例代碼:

final View view = findViewById(R.id.your_view);
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        // 獲取View的寬高
        int width = view.getWidth();
        int height = view.getHeight();

        // 執行你需要的操作

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

可以使用View.post()方法將一個Runnable對象加入到View的消息隊列中。當View的寬高已經確定時,Runnable對象會被執行。

示例代碼:

final View view = findViewById(R.id.your_view);
view.post(new Runnable() {
    @Override
    public void run() {
        // 獲取View的寬高
        int width = view.getWidth();
        int height = view.getHeight();

        // 執行你需要的操作
    }
});

請注意,這兩種方法都需要在View布局完成后才能獲取到正確的寬高。因此,務必在合適的時機調用這些方法。

0
永嘉县| 梅州市| 秀山| 伊宁市| 会泽县| 蚌埠市| 南开区| 普兰县| 吕梁市| 伊宁市| 和平县| 洞头县| 二连浩特市| 寿宁县| 澄江县| 金门县| 扶风县| 通化市| 高雄县| 建宁县| 重庆市| 安徽省| 济宁市| 清水县| 安平县| 台北县| 观塘区| 灌南县| 三明市| 南丹县| 全南县| 婺源县| 防城港市| 丰县| 邹平县| 浦江县| 尼木县| 荆州市| 宜君县| 侯马市| 阿荣旗|