我已经看过以下线程: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的权重。永远带我走,但我终于想通了!

08-04 06:30