首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android SDK中的getWidth/Height()和getMeasuredWidth/Height()有什么区别?

Android SDK中的getWidth/Height()和getMeasuredWidth/Height()有什么区别?
EN

Stack Overflow用户
提问于 2011-12-28 23:08:26
回答 1查看 43.8K关注 0票数 101

视图有两种尺寸的Android Documentation says,即测量尺寸和绘图尺寸。测量的尺寸是在测量过程中计算的尺寸( onMeasure方法),而绘图尺寸是屏幕上的实际尺寸。特别是,文档中说:

这些值可能不同于测量的宽度和高度,但不一定不同。

那么,我的问题是:是什么使得图纸尺寸与测量尺寸不同?如果onMeasure(int,int)方法遵守布局要求(作为参数widthMeasureSpec和heightMeasureSpec给出),那么SDK如何决定视图应该具有不同的绘图大小?

此外,在Android Source Code中如何/在何处使用测量的宽度/高度来计算绘图宽度/高度?我试图查看View source code,但我不知道如何使用测量的宽度/高度来计算最终的宽度/高度。也许和填充物有关,但我不确定。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-29 14:10:32

顾名思义,测量宽度/高度在测量和布局阶段使用。

让我举个例子,

一个小部件被要求测量自己,小部件说它想要200px乘以200px。这是测量宽度/高度。

在布局阶段,即在onLayout方法中。该方法可以使用其子对象的measuredWidth/height,也可以通过调用视图的layout方法分配新的宽度/高度。

假设onLayout方法调用childview.layout(0,0,150,150),现在视图的宽度/高度与测量的宽度/高度不同。

我建议不要使用onLayout之外的测量宽度/高度方法。

总结一下。

  1. onMeasure ->设置测量的宽度/测量的高度
  2. onLayout ->设置小部件的宽度/高度。

另外

public void View.layout(int l, int t, int r, int b)

似乎是位置和大小分配发生的地方。

票数 108
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8657540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档