1

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

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

如果我吐出galleryWidth,它会显示“-1”。

我也试过

galleryContainer.getWidth()

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

我勒个去?

我怎样才能真正获得以像素为单位的布局宽度?或者一些确切的值,比如倾角?

4

3 回答 3

3

measure()通话前使用getWidth()

galleryContainer.measure(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
于 2012-04-18T11:36:58.223 回答
1

不确定你,但我们也可以编写这样的代码,看看它是否有帮助。

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

玩得开心。

于 2012-04-18T11:52:27.090 回答
1

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

@Override 
public void onWindowFocusChanged(boolean hasFocus) 
{ 
     // TODO Auto-generated method stub 
     super.onWindowFocusChanged(hasFocus);
     System.out.println("...Width..."+galleryContainer.getWidth()); 
} 
于 2012-04-18T11:22:56.373 回答