Android:如何获得自定义视图的高度和宽度?
可能重复:
如何根据父级的维度来确定Android视图的大小
我如何使用getMeasuredWidth()
和getMeasuredHeight
? 它总是返回0.这和getHeight()
和getWidth()
什么getWidth()
?
对不起,这个问题已经被问到了。 我在这里find了答案 – 如何根据父级的维度来确定Android视图的大小
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int parentWidth = MeasureSpec.getSize(widthMeasureSpec); int parentHeight = MeasureSpec.getSize(heightMeasureSpec); this.setMeasuredDimension(parentWidth, parentHeight); super.onMeasure(widthMeasureSpec, heightMeasureSpec); }
刚刚得到一个解决scheme来获取自定义视图的高度和宽度:
@Override protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){ super.onSizeChanged(xNew, yNew, xOld, yOld); viewWidth = xNew; viewHeight = yNew; }
它在我的情况下工作。
不要试图让它们在构造函数中。 尝试在onDraw()
方法中调用它们。
您可以使用以下方法获取视图的宽度和高度。例如,
int height = yourView.getLayoutParams().height; int width = yourView.getLayoutParams().width;
这给出了在XML布局中指定的视图的转换值。
说如果在XML中指定的高度值是53dp,那么你将得到整数的转换值为80。
我也失去了很长一段时间getMeasuredWidth()
和getMeasuredHeight()
getHeight()
和getWidth()
……….后来我发现onSizeChanged()
方法是非常有用的。
新的博客文章:如何获取自定义视图的宽度和高度尺寸(扩展视图)在Android http://syedrakibalhasan.blogspot.com/2011/02/how-to-get-width-and-height-dimensions.html
getHeight()
和getMeasuredHeight()
之间的区别在于第一个方法将返回View
实际高度,第二个方法将返回View
子项的摘要高度。 另外, getHeight()
返回视图高度, getMeasuredHeight()
返回高度,这个视图需要显示所有的元素
那么getheight得到的高度,getwidth得到的宽度。 但是你过早地调用了这些方法。 如果你在oncreate或onresume中调用它们,视图还没有绘制。 视图绘制完毕后,您必须调用它。