我有一个包含几个子视图的布局,所有子视图都设置为高度,如:
<View android:layout_width="fill_parent"
android:layout_height="18dip"
android:background="#ff000000" />
如何在代码中检索存储在layout_height中的值?
最终,我想要做的是能够调整布局中定义的大小,以便根据屏幕分辨率和像素密度的分辨率动态更改layout_height定义的值。 在onLayout回调期间唯一的方法是这样做吗?
在onCreate上重新定义XML要容易得多。
评论,建议将不胜感激。
由于 JY
答案 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);
}
}