android如何获取view宽高

   2024-09-30 9870
核心提示:在Android中,获取View的宽高需要在View布局完成后进行。可以通过以下方法获取View的宽高:使用ViewTreeObserver:在View创建完

在Android中,获取View的宽高需要在View布局完成后进行。可以通过以下方法获取View的宽高:

使用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);        }    }});
使用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布局完成后才能获取到正确的宽高。因此,务必在合适的时机调用这些方法。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号