如果我有一个定义2个ImageView的TableLayout结构(如下)。一个还指定宽度/高度的像素值。这正如我所料 - Pic 1的大小调整为50px,pic2保持原始大小:
<TableLayout android:layout_width="wrap_content" android:layout_height="wrap_content">
<TableRow>
<ImageView android:src="@drawable/pic1" android:layout_width="50px" android:layout_height="50px" />
<ImageView android:src="@drawable/pic2" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</TableRow>
</TableLayout>
但我真的需要以编程方式执行上述操作,所以我这样做......
TableLayout tableLayout = new TableLayout(ctx);
TableRow tableRow = new TaleRow(ctx);
ImageView imageViewOne = new ImageView(ctx);
ImageView imageViewTwo = new ImageView(ctx);
imageViewOne.setImageResource(R.drawable.pic1);
imageViewTwo.setImageResource(R.drawable.pic2);
imageViewOne.setLayoutParams(new LayoutParams(50, 50));
rootView.addView(tableLayout);
tableLayout.addView(tableRow);
tableRow.addView(imageViewOne);
tableRow.addView(imageViewTwo);
以上与XML不同 - 在向其添加setLayoutParams()方法之后,第一个ImageView根本没有使用编程方式显示。
我在这里错过了什么,有什么不同?
谢谢!
答案 0 :(得分:13)
好的,我已经成功解决了这个问题。而不是使用:
imageViewOne.setLayoutParams(new LayoutParams(50, 50));
我改为使用了这个:
imageViewOne.setLayoutParams(new TableRow.LayoutParams(50, 50));