如何获得布局的尺寸或更像像素的高度和智慧?



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

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

如果我举杯输出 galleryWidth,它说"-1"。

我也试过

galleryContainer.getWidth()

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

管他呢?

如何真正获得以像素为单位的布局宽度?或者一些精确的值,如 dip?

在调用getWidth()之前使用 measure()

galleryContainer.measure(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);

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

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

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

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

玩得愉快。

相关内容

  • 没有找到相关文章

最新更新