我已经看过以下线程: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并没有占据所有可能的空间...而矩形_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>
最佳答案
对于那些感兴趣的人,我通过使用权重明确指定了height_icon的高度来解决了这个问题……为每个square_icon赋予了4的权重,并且为每个square_icon赋予了1的权重。永远带我走,但我终于想通了!