Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在代码中检索布局高度_Java_Android_Xml - Fatal编程技术网

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

Java 如何在代码中检索布局高度,java,android,xml,Java,Android,Xml,我有一个包含多个子视图的布局,所有子视图都设置了高度,如: <View android:layout_width="fill_parent" android:layout_height="18dip" android:background="#ff000000" /> 如何在代码中检索layout_height中存储的值 最后,我想做的是能够调整布局中定义的大小,以便根据屏幕分辨率和像素密度的分辨率动态更改布局高度定义的值。 在onLayout回调期间,是否只有

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

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

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

最后,我想做的是能够调整布局中定义的大小,以便根据屏幕分辨率和像素密度的分辨率动态更改布局高度定义的值。 在onLayout回调期间,是否只有这样做

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

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

谢谢
JY

访问视图布局,然后访问“高度”字段:

应该在发布问题之前再搜索一点。 这就是看起来的诀窍

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);
    }
}
DisplayMetrics dm=newdisplaymetrics();
这个.getWindowManager().getDefaultDisplay().getMetrics(dm);
因子y=(dm.ydpi*dm.heightPixels)/(160*480);
因子_x=(dm.xdpi*dm.widthPixels)/(160*320);
LinearLayout布局=(LinearLayout)findViewById(R.id.mainlayout);
对于(int i=0;i0)
{
v、 getLayoutParams().height=(int)((float)height*factor_y);
}
int width=v.getLayoutParams().width;
如果(宽度>0)
{
v、 getLayoutParams().width=(int)((float)width*factor_x);
}
}