Android 如何使ImageView基于固定高度匹配宽度?

Android 如何使ImageView基于固定高度匹配宽度?,android,android-imageview,Android,Android Imageview,我有一些图片,它们必须缩放到普通高度,但宽度不同。如何将它们设置为固定高度的内部LinearLayout,以便自动计算其宽度以保持其纵横比 我试过: <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageVi

我有一些图片,它们必须缩放到普通高度,但宽度不同。如何将它们设置为固定高度的内部
LinearLayout
,以便自动计算其宽度以保持其纵横比

我试过:

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:src="@drawable/clean"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:src="@drawable/c4"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:src="@drawable/c4"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:src="@drawable/c4"/>

    </LinearLayout>

不幸的是,效果与我预期的相去甚远(图像太宽):


要这样做,请使用
android:scaleType=“centerCrop”


对所有权重为“1”的ImageView使用width=“0”,并将图像设置为ImageView内部的背景,而不是src中的背景。

找到了它!诀窍是同时使用
android:scaleType=“fitXY”
android:adjustViewBounds=“true”



尝试使用
android:layout\u width=“0dp”
android:layout\u weight=“1”
imageView@DanhDC不起作用,较大的图像比较小的图像缩小得更多…因此,您希望根据图像的高度使用方形图像视图,对吗?是否尝试为其设置缩放类型。e、 g fitXY还是fitCenter?@MalekHijazi我希望所有图像都缩小到相同的高度,但保持其纵横比,因此宽度会有所不同。某些图像比其他图像宽。这不太可能工作,第一个图像比其他图像宽,它将比其他图像缩小更多…使用android:scaleType=“centerCrop”
 <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="1"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:layout_weight="0.25"
                android:scaleType="centerCrop"
                android:src="@drawable/clean"/>
            <ImageView
                android:layout_width="match_parent"
                android:layout_height="200dp"
               android:layout_weight="0.25"
                 android:scaleType="centerCrop"
                android:src="@drawable/c4"/>
            <ImageView
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:layout_weight="0.25"
                android:scaleType="centerCrop"
                android:src="@drawable/c4"/>
            <ImageView
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:layout_weight="0.25"
                android:scaleType="centerCrop"
                android:src="@drawable/c4"/>

        </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="horizontal">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:scaleType="fitXY"
            android:adjustViewBounds="true"
            android:src="@drawable/clean"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:scaleType="fitXY"
            android:adjustViewBounds="true"
            android:src="@drawable/c4"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:scaleType="fitXY"
            android:adjustViewBounds="true"
            android:src="@drawable/c4"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:scaleType="fitXY"
            android:adjustViewBounds="true"
            android:src="@drawable/c4"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:scaleType="fitXY"
            android:adjustViewBounds="true"
            android:src="@drawable/c4"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:scaleType="fitXY"
            android:adjustViewBounds="true"
            android:src="@drawable/c4"/>

    </LinearLayout>