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