1

我已经看过这个帖子:ImageView adjustViewBounds not working,但它不适用于我的情况。

本质上,adjustViewBounds 不起作用。让我们假设以下内容:

square_icon => 1000x1000
rectangle_icon => 400x100
device height => 1000

所以我想要发生的是四个具有以下尺寸的图标的垂直堆叠:

square_icon = 400x400
rectangle_icon = 400x100
square_icon = 400x400
rectangle_icon = 400x100

但是发生的事情是 square_icon 没有占用它可以占用的所有空间......并且 rectangle_icon 更像是 400x200 而不是 400x100?图像没有以不正确的纵横比进行缩放,只是在视图中添加了空白空间(scalingType 确定空间是在顶部、底部还是两者兼而有之)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:adjustViewBounds="true"
        android:src="@drawable/square_icon" />

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:src="@drawable/rectangle_icon" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:adjustViewBounds="true"
        android:src="@drawable/square_icon" />

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:src="@drawable/rectangle_icon" />

</LinearLayout>
4

1 回答 1

1

对于那些感兴趣的人,我通过使用权重明确指定 rectangle_icon 的高度来解决了这个问题……为每个 square_icon 分配了 4 的权重,为每个 rectangle_icon 分配了 1 的权重。花了我一辈子,但我终于想通了!

于 2012-09-14T13:57:02.590 回答