以编程方式调整TableLayout中的ImageView大小

时间:2010-11-15 20:59:14

标签: android

如果我有一个定义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根本没有使用编程方式显示。

我在这里错过了什么,有什么不同?

谢谢!

1 个答案:

答案 0 :(得分:13)

好的,我已经成功解决了这个问题。而不是使用:

imageViewOne.setLayoutParams(new LayoutParams(50, 50));

我改为使用了这个:

imageViewOne.setLayoutParams(new TableRow.LayoutParams(50, 50));