视图有两种尺寸的Android Documentation says,即测量尺寸和绘图尺寸。测量的尺寸是在测量过程中计算的尺寸( onMeasure方法),而绘图尺寸是屏幕上的实际尺寸。特别是,文档中说:
这些值可能不同于测量的宽度和高度,但不一定不同。
那么,我的问题是:是什么使得图纸尺寸与测量尺寸不同?如果onMeasure(int,int)方法遵守布局要求(作为参数widthMeasureSpec和heightMeasureSpec给出),那么SDK如何决定视图应该具有不同的绘图大小?
此外,在Android Source Code中如何/在何处使用测量的宽度/高度来计算绘图宽度/高度?我试图查看View source code,但我不知道如何使用测量的宽度/高度来计算最终的宽度/高度。也许和填充物有关,但我不确定。
发布于 2011-12-29 14:10:32
顾名思义,测量宽度/高度在测量和布局阶段使用。
让我举个例子,
一个小部件被要求测量自己,小部件说它想要200px乘以200px。这是测量宽度/高度。
在布局阶段,即在onLayout方法中。该方法可以使用其子对象的measuredWidth/height,也可以通过调用视图的layout方法分配新的宽度/高度。
假设onLayout方法调用childview.layout(0,0,150,150),现在视图的宽度/高度与测量的宽度/高度不同。
我建议不要使用onLayout之外的测量宽度/高度方法。
总结一下。
另外
public void View.layout(int l, int t, int r, int b)
似乎是位置和大小分配发生的地方。
https://stackoverflow.com/questions/8657540
复制相似问题