1

我有一个带有 3 个 TableRows 的 TableLayout,每个 TableRow 有 3 个 ImageView。每个 ImageView 都有适合 Scale 类型的 fitCenter,以及每个 stackoverflow answer的权重和宽度。现在所有图像都缩放以适应行,但每一行都比它需要的高得多。这是xml的摘录:

<TableLayout android:id="@+id/TableLayout01"
android:layout_height="wrap_content"
android:padding="10dip"
android:stretchColumns="0,1,2"
android:shrinkColumns="0,1,2"
android:layout_weight="1"
android:layout_width="wrap_content">
    <TableRow android:id="@+id/TableRow01"
    android:layout_width="fill_parent"
    android:layout_gravity="center_vertical|center_horizontal"
    android:baselineAligned="false"
    android:gravity="center_vertical|center_horizontal"
    android:layout_height="wrap_content">
        <ImageView android:id="@+id/image1"
        android:src="@drawable/avocado3"
        android:scaleType="fitCenter"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="wrap_content"/>
        <ImageView android:id="@+id/image2"
        android:src="@drawable/avocado3"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:scaleType="fitCenter"/>
        <ImageView android:id="@+id/image3"
        android:src="@drawable/avocado3"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:scaleType="fitCenter"/>
    </TableRow>
...
</TableLayout>

这是第一行:

第一排

第一行的结束和第二行的开始:

第二行

ImageViews 设置为一个小的可绘制对象(@drawable/avocado3),在活动的 onCreate() 中,它从 Internet 获取 9 个图像并调用 setImageBitmap()。

有人对我做错了什么有任何想法吗?

4

1 回答 1

3

默认情况下,scaleType只改变实际图像的大小,而不改变周围的大小ImageView。由于 的高度ImageView设置为wrap_content,它将占用显示完整图像所需的所有空间,然后缩放图像以使其适合其宽度。

尝试设置adjustViewBounds为真。如果这没有帮助,请尝试设置一个固定值layout_height或使用该maxHeight属性。

查看层次结构查看器内部也可能会有所帮助:http: //developer.android.com/guide/developing/tools/hierarchy-viewer.html

于 2010-11-11T21:35:24.170 回答