可能重复:
How to size an Android view based on its parent’s dimensionsAndroid:如何获得自定义视图的高度和宽度?
我怎么使用getMeasuredWidth()
和getMeasuredHeight
?它始终返回0.这和getHeight()
和getWidth()
之间有什么不同?
可能重复:
How to size an Android view based on its parent’s dimensionsAndroid:如何获得自定义视图的高度和宽度?
我怎么使用getMeasuredWidth()
和getMeasuredHeight
?它始终返回0.这和getHeight()
和getWidth()
之间有什么不同?
对不起,这个问题已经被问到。我在这里找到答案 - How to size an Android view based on its parent's dimensions
@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);
}
这回答了“如何使用'''getMeasuredWidth()'''”但不回答原始问题,即“如何获得自定义视图的高度和宽度” – 2017-03-03 21:20:46
那么getheight获得高度,getwidth获得宽度。但是你很快就会调用这些方法。如果你在oncreate或onresume中调用它们,视图还没有绘制出来。您必须在绘制视图后调用它。
我在问getMeasuredHeight()和getHeight()之间的区别。好的,我怎么才能获得屏幕的宽度和高度呢? – 2010-11-02 04:48:28
我也损失了大约getMeasuredWidth()
和getMeasuredHeight()
getHeight()
和getWidth()
很长一段时间..........后来我发现onSizeChanged()
方法是很有益的。
新的博客文章:如何在Android的http://syedrakibalhasan.blogspot.com/2011/02/how-to-get-width-and-height-dimensions.html
得到customView(扩展视图)的宽度和高度尺寸刚刚得到一个解决方案,使自定义视图的高度和宽度:
@Override
protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){
super.onSizeChanged(xNew, yNew, xOld, yOld);
viewWidth = xNew;
viewHeight = yNew;
}
它在我的情况下工作。
我相信这是确定宽度和高度的正确方法。这也是最简单的。 – Kerry 2013-08-16 11:32:21
键盘出现时出现一个问题,称为 – 2015-02-18 05:51:03
可以使用下面的方法来获取视图, 。例如宽度和高度,
int height = yourView.getLayoutParams().height;
int width = yourView.getLayoutParams().width;
这给出了在XML布局指定的视图的转换值。
说,如果身高指定的值53dp在XML中,你会得到整数换算值80
请注意,只要指定了宽度或高度,就会给出宽度/高度。如果你设置了WRAP_CONTENT,这不会给出正确的宽度/高度。它将返回-1或0,具体取决于其“MATCH_PARENT”或“WRAP_CONTENT”。 http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html – Reinherd 2013-10-07 07:35:31
真的,它给我-1,而不是scrollview的实际高度,我需要一个滚动视图高度,在我的情况下,我有scrollview和seekbar,需要同时更改它,即如果我通过scrollview同时滚动x数量seekbar进度应该改变为滚动视图相同。 – 2013-12-26 10:48:19
getHeight()
和getMeasuredHeight()
之间的区别在于,第一种方法将返回View
的实际高度,第二个将返回View
的孩子的总结高度。在其他语言中,getHeight()
返回视图高度,getMeasuredHeight()
返回此视图需要显示的所有元素的高度
它可以在任何情况下相同?我的价值都是一样的,有可能吗? – 2013-12-26 10:49:35
当然,它可以是相同的。例如,如果您的孩子与其父母具有相同的身高。 – OFFmind 2014-01-11 07:11:26
为什么我不能在View中使用Display Display = getWindowManager()。getDefaultDisplay();? – 2010-11-02 04:53:38