【问题标题】:TableRow heights getting blown outTableRow 高度被炸毁
【发布时间】:2011-05-08 17:50:27
【问题描述】:

我有一个带有 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),在 Activity 的 onCreate() 中,它从互联网上获取 9 张图像并调用 setImageBitmap()。

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

【问题讨论】:

    标签: android imageview tablelayout tablerow


    【解决方案1】:

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

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

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

    【讨论】:

    • 甜蜜! adjustViewBounds 做到了!非常感谢。在调用 setImageBitmap(); 之前,我刚刚做了一些其他工作来缩放图像。是时候解决这个问题了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多