Search code examples
androidscalingtablelayoutimage-scaling

Table row expands outside of view because images won't scale


I've a layout that contains amongst other the following table:

    <TableRow
        android:id="@+id/tableRow1a"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dip"
        android:background="#338877"  >

         <TextView
            android:id="@+id/textviewSugarLabel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="@string/label_sugar"
            android:textColor="#00a7ce"
            android:textColorLink="#00a7ce"
            android:textSize="16sp" />

        <Button
            android:id="@+id/button_sugar_0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@null"
            android:text="TEST" />

        <ImageButton
            android:id="@+id/button_sugar_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@null"
            android:src="@drawable/button_sugar_off"
            android:scaleType="centerInside"
            android:adjustViewBounds="true" />

        <ImageButton
            android:id="@+id/button_sugar_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@null"
            android:src="@drawable/button_sugar_off" 
            android:scaleType="centerInside" 
            android:adjustViewBounds="true" />

        <ImageButton
            android:id="@+id/button_sugar_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@null"
            android:src="@drawable/button_sugar_off"
            android:scaleType="centerInside"
            android:adjustViewBounds="true"  />

        <ImageButton
            android:id="@+id/button_sugar_4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@null"
            android:src="@drawable/button_sugar_off"
            android:scaleType="centerInside"
            android:adjustViewBounds="true"  />

        <ImageButton
            android:id="@+id/button_sugar_5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@null"
            android:src="@drawable/button_sugar_off"
            android:scaleType="centerInside"
            android:adjustViewBounds="true"  />

        <ImageButton
            android:id="@+id/button_sugar_6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@null"
            android:src="@drawable/button_sugar_off"
            android:scaleType="centerInside"
            android:adjustViewBounds="true"  />

    </TableRow>
</TableLayout>

What I got is, the table row expands outside the right border of the view (because the button-images are not scaled and thus to big). What I need would be a scaling of the images to allow for that. What I don't have is an idea, why it doesn't do that 8)

Any pointers appreciated!

Best regards, Marcus


Solution

  • Found the solution: Add

    android:stretchColumns="true" android:shrinkColumns="true"

    to your

    <TableLayout>