代码之家  ›  专栏  ›  技术社区  ›  jyavenard

如何在代码中检索布局高度

  •  1
  • jyavenard  · 技术社区  · 14 年前

    我有一个包含多个子视图的布局,所有这些子视图都设置了高度,如:

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

    最后,我想做的是调整布局中定义的大小,以便根据屏幕分辨率和像素密度动态更改布局高度定义的值。

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

    如有意见和建议,将不胜感激。

    谢谢

    2 回复  |  直到 14 年前
        1
  •  2
  •   Peter Knego    14 年前

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

        2
  •  0
  •   jyavenard    14 年前

    在发帖之前应该再搜索一下。

    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);
        }
    }