例如,这是mButton
:
<Button
android:id="@+id/mbtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="mButton" />
这就是我试图获得高度的方式:
int height = mButton.getLayoutParams.height;
但是当我记录它时,它表示高度为-2。我认为这可能是“wrap_content”的int值。那么我怎样才能得到实际的高度? THX!
答案 0 :(得分:3)
如果要在激活中获取视图的宽度或高度 你可以使用这种方法..
yourview.getHeight();
在初始化按钮后返回零(0),因为在将它添加到窗口后它只有宽度..在下面的方法中你可以看到视图的高度和宽度..
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
yourview.getHeight();
yourview.getWidth();
}
答案 1 :(得分:1)
覆盖onWindowFocusChanged(boolean hasFocus);
的方法在里面写你的代码,
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
mbtn.getHeight();
mbtn.getWidth();
}
它将给出视图尺寸的正确结果。
答案 2 :(得分:0)
布局发生后致电View.getHeight():
public final int getHeight()
返回视图的高度。
<强>返回强>
视图的高度,以像素为单位。
正如您所猜测的那样,layoutParams.height
只是您案例中wrap_content
的值,即-2。您可以将layoutParams.height
设置为所需的高度,但即使这样,在完成所有布局后,视图实际上也不一定是高度。