Высоты TableRow становятся унесенными - PullRequest
1 голос
/ 12 ноября 2010

У меня есть TableLayout с 3 TableRows, у каждого TableRow есть 3 ImageViews. Каждый ImageView имеет fitCenter для типа Scale, а также вес и ширину для этого стека переполнения 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>

А вот и первый ряд:

first row

И конец первого ряда и начало второго:

second row

Для ImageViews задано маленькое рисование (@ drawable / avocado3), а в onCreate () действия он получает 9 изображений из Интернета и вызывает setImageBitmap ().

У кого-нибудь есть идеи, что я делаю не так?

1 Ответ

3 голосов
/ 12 ноября 2010

По умолчанию scaleType только изменяет размер фактического изображения, но не размер окружающего ImageView. Поскольку высота ImageView установлена ​​на wrap_content, потребуется все пространство, необходимое для отображения полного изображения, а затем масштабировать изображение, чтобы оно соответствовало его ширине.

Попробуйте установить adjustViewBounds в значение true. Если это не поможет, попробуйте установить фиксированный layout_height или поиграйте со свойством maxHeight.

Может также помочь заглянуть внутрь средства просмотра иерархии: http://developer.android.com/guide/developing/tools/hierarchy-viewer.html.

...