如何在代码中检索layout_height

时间:2010-10-30 09:26:47

标签: java android xml

我有一个包含几个子视图的布局,所有子视图都设置为高度,如:

<View android:layout_width="fill_parent"
    android:layout_height="18dip"
    android:background="#ff000000" />

如何在代码中检索存储在layout_height中的值?

最终,我想要做的是能够调整布局中定义的大小,以便根据屏幕分辨率和像素密度的分辨率动态更改layout_height定义的值。 在onLayout回调期间唯一的方法是这样做吗?

在onCreate上重新定义XML要容易得多。

评论,建议将不胜感激。

由于 JY

2 个答案:

答案 0 :(得分:2)

访问视图的布局,然后访问“高度”字段:View.getLayoutParams().height

答案 1 :(得分:0)

在发布问题之前,应该进一步搜索。 这就是看起来的伎俩......

DisplayMetrics dm = new DisplayMetrics();
    this.getWindowManager().getDefaultDisplay().getMetrics(dm);
    factor_y = (dm.ydpi * dm.heightPixels) / (160 * 480);
    factor_x = (dm.xdpi * dm.widthPixels) / (160 * 320);

LinearLayout layout = (LinearLayout) findViewById(R.id.mainlayout);
for (int i = 0; i < layout.getChildCount(); i++)
{
    View v = layout.getChildAt(i);
    int height = v.getLayoutParams().height;
    if (height > 0)
    {
        v.getLayoutParams().height = (int) ((float) height * factor_y);
    }
    int width = v.getLayoutParams().width;
    if (width > 0)
    {
        v.getLayoutParams().width = (int) ((float) width * factor_x);
    }
}