TableRow 高度被吹爆
我有一个带有 3 个 TableRow 的 TableLayout,每个 TableRow 有 3 个 ImageView。每个 ImageView 都有适合 Scale 类型的 fitCenter,以及每个 stackoverflow 答案。现在所有图像都会缩放以适合该行,但每行都比它需要的要高得多。这是 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 中() 它从互联网上获取 9 个图像并调用 setImageBitmap()。
有人对我做错了什么有任何想法吗?
I have a TableLayout with 3 TableRows, each TableRow has 3 ImageViews. Each ImageView has fitCenter for Scale type, and a weight and width per this stackoverflow answer. Now all the images scale to fit into the row, but each row is way taller then it needs to be. Here's an excerpt of the 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>
And here's the first row:
And the end of the first row and start of the second:
The ImageViews are set to a drawable that is small (@drawable/avocado3), and in the activity's onCreate() it fetches 9 images from the internet and calls setImageBitmap().
Anyone have any ideas on what I'm doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
默认情况下,
scaleType
仅更改实际图像的大小,但不会更改周围ImageView
的大小。由于ImageView
的高度设置为wrap_content
,因此它将占用显示完整图像所需的所有空间,然后缩放图像以使其适合其宽度。尝试将
adjustViewBounds
设置为 true。如果这没有帮助,请尝试设置固定的layout_height
或使用maxHeight
属性。查看层次结构查看器内部也可能有所帮助: http:// developer.android.com/guide/developing/tools/hierarchy-viewer.html。
By default,
scaleType
only changes the size of the actual image, but not the size of the surroundingImageView
. Since the height of theImageView
is set towrap_content
, it will take all the space it needs to display the full image, and then scale the image to fit it inside it's width.Try setting
adjustViewBounds
to true. If that doesn't help, try setting a fixedlayout_height
or play around with themaxHeight
property.It might also help to take a look inside the hierarchy viewer: http://developer.android.com/guide/developing/tools/hierarchy-viewer.html.