Android getWidth和getMeasuredWidth

1. 在一个类初始化时,即在构造函数当中咱们是得不到View的实际大小的。感兴趣的朋友能够试一下,getWidth()和getMeasuredWidth()获得的结果都是0.可是咱们能够从onDraw()方法里面的到控件的大小。函数

2.这两个所获得的结果的单位是像素即pixel。布局

getWidth(): 获得的是view在父Layout中布局好后的宽度值,若是没有父布局,那么默认的父布局就是整个屏幕。this

getMeasuredWidth():先看一下API里面是怎么说的。
The width of this view as measured in the most recent call to measure(). This should be used during measurement and layout calculations only..net

获得的是最近一次调用measure()方法测量后获得的是View的宽度,它仅仅用在测量和Layout的计算中。因此此方法获得的是View的内容占据的实际宽度。blog

 

总结(正解): rem

getWidth(): View在设定好布局后整个View的宽度。get

getMeasuredWidth(): 对View上的内容进行测量后获得的View内容占据的宽度,前提是你必须在父布局的onLayout()方法或者此View的onDraw()方法里调用measure(0,0);(measure中的参数的值你本身能够定义),不然你获得的结果和getWidth()获得的结果是同样的。io

 

转自:http://blog.csdn.net/wangbofei/article/details/7795430sed

相关文章
相关标签/搜索