android中getWidth()和getMeasuredWidth()

Posted 千彧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中getWidth()和getMeasuredWidth()相关的知识,希望对你有一定的参考价值。

  getMeasuredWidth()获取的是view原始的大小,也就是这个view在XML文件中配置或者是代码中设置的大小。getWidth()获取的是这个view最终显示的大小,这个大小有可能等于原始的大小也有可能不等于原始大小。

  在布局文件中写入width 只是给了他一个初始化的默认值,而不是最终的结果,最终的结果是要通过Measured等计算出来的,所以在view构建完成之前调用 getWidth 都为0.

 

如果在构建view前获取默认 大小可以用:

 


int width = activity.getWindowManager().getDefaultDisplay().getWidth();

int height =activity.getWindowManager().getDefaultDisplay().getHeight();


 

 

 

以上是关于android中getWidth()和getMeasuredWidth()的主要内容,如果未能解决你的问题,请参考以下文章

在android上动态创建视图和getWidth方法

android中getWidth()和getMeasuredWidth()

NullPointerException:尝试调用虚拟方法“int android.graphics.Bitmap.getWidth()”

android view getWidth() 即使在 onPreDraw() 中也返回 0

getWidth 和 getHeight 返回零

getWidth() 和 getHeight 在 onMeasure() 之后返回零(特定设备)