TableLayout的最后一列中的图像按钮奇怪缩放

时间:2013-06-24 11:05:46

标签: android imagebutton tablelayout

我正在使用一个包含3行的TableLayout,每行有3个图像按钮。我想保持图像的宽高比。

我已经定义了这样的布局:

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:background="#000000"
    android:padding="0dp" >

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:padding="0dp" >

        <ImageButton
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:contentDescription="@string/Cell"
            android:padding="0dp"
            android:scaleType="fitCenter"
            android:src="@drawable/empty" >
        </ImageButton>

        <!-- Two more images like above -->

    </TableRow>

    <!-- Two more rows like above -->
</TableLayout>

通过这种布局,我得到了这样的结论:

http://i.stack.imgur.com/reoSd.png

如您所见,最后一列中各行之间出现奇怪的洞。我不知道为什么,但如果我将TableLayout边距更改为0dp,这个问题就会消失:

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="0dp"
    android:background="#000000"
    android:padding="0dp" >

结果:

http://i.stack.imgur.com/Jytix.png

为什么会这样?我做错了什么?我已经测试了这个,模拟器上有很多设备,我总是这样。作为附加信息,我已经使用getHeight()和getWidth()...打印了最后一列和第一列图像的大小和填充,并且我总是得到完全相同的。

1 个答案:

答案 0 :(得分:0)

我有这个问题,你应该使用相对布局......如果你仍想使用表格布局,请尝试:

TableLayout tableView = (TableLayout) findViewById(R.id.tableView);
TableRow row = (TableRow) inflater.inflate(R.layout.tablerow, tableView, false);
ImageView imgDis = (ImageView) row.findViewById(R.id.spinnerEntryContactPhoto);
    imgDis.setPadding(5, 5, 5, 5);
    imgDis.setAdjustViewBounds(true);

    // set row height width

TableRow.LayoutParams params = new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, 50);

    params.topMargin = 0;
    params.bottomMargin = 0;
    params.leftMargin = 0;
    params.rightMargin = 0;

希望这个帮助