我想获得布局的宽度(以像素为单位)。 我试过这个:
LinearLayout galleryContainer = (LinearLayout)findViewById(R.id.galleryContainerLayout);
int galleryWidth= galleryContainer.getLayoutParams().width;
如果我向galleryWidth致敬,则说“-1”。
我也试过
galleryContainer.getWidth()
但它第一次给出0,然后是第二次480(实际大小),所以就像我在布局渗透其大小之前得到了像素。
到底是什么?
如何才能真正获得布局宽度(以像素为单位)?或者像dip这样的确切值?
答案 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();
玩得开心。