首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在onCreate中获取View的高度和宽度

如何在onCreate中获取View的高度和宽度

作者头像
阳仔
发布2019-07-31 17:14:26
5.2K0
发布2019-07-31 17:14:26
举报
文章被收录于专栏:终身开发者终身开发者

如何在onCreate中获取View的高度和宽度

在开发过程中经常需要获取到View的宽和高,可以通过View.getWidth()和View.getHeight()来得到宽高。然而新手们经常在onCreate方法中直接调用上面两个方法得到的值是0!

这是为什么呢?

因为View绘制是通过两个遍历来完成的,一个measure过程,一个layout过程。只有经过“测量”和“布局”之后,View才能正确地完成绘制。而这一切是发生在onCreate方法之后的。所以在onCreate中直接使用View.getWidth()和View.getHeight()是无法得到正确的值的。

那应该怎么onCreate中获取View的宽高呢?

开发者可以通过View.post()方法来获取到View的宽高,该方法传递一个Runnable参数,然后将其添加到消息队列中,最后在UI线程中执行。

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

view.post(new Runnable(){

public void run(){

//在这里使用View.getWidth()和View.getHeight()方法可以得到正确的值

Log.d(TAG,"view.width="+view.getWidth()+",view.height="+view.getHeight());

}

});

}

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 终身开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档