如何获得布局的尺寸或更像高度和宽度(以像素为单位)?

时间:2012-04-18 11:20:08

标签: android android-layout android-screen

我想获得布局的宽度(以像素为单位)。 我试过这个:

LinearLayout galleryContainer = (LinearLayout)findViewById(R.id.galleryContainerLayout);
int galleryWidth= galleryContainer.getLayoutParams().width;

如果我向galleryWidth致敬,则说“-1”。

我也试过

galleryContainer.getWidth()

但它第一次给出0,然后是第二次480(实际大小),所以就像我在布局渗透其大小之前得到了像素。

到底是什么?

如何才能真正获得布局宽度(以像素为单位)?或者像dip这样的确切值?

3 个答案:

答案 0 :(得分:3)

在致电measure()

之前使用getWidth()
galleryContainer.measure(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);

答案 1 :(得分:1)

布局已膨胀但尚未绘制。为了获得宽度或高度,您必须使用以下方法。

@Override 
public void onWindowFocusChanged(boolean hasFocus) 
{ 
     // TODO Auto-generated method stub 
     super.onWindowFocusChanged(hasFocus);
     System.out.println("...Width..."+galleryContainer.getWidth()); 
} 

答案 2 :(得分:1)

对您不确定,但我们也可以编写类似的内容,请查看是否有帮助。

Display display = ((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
                        int width = display.getWidth();
                        int height = display.getHeight();

玩得开心。