Android:如何获得视图的高度

时间:2013-11-04 06:29:58

标签: android layoutparams

例如,这是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!

3 个答案:

答案 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设置为所需的高度,但即使这样,在完成所有布局后,视图实际上也不一定是高度。