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>