我有一些图像,必须缩放到公共高度,但宽度不同。如何在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>
不幸的是,效果远远超出我的预期(图像太宽):
答案 0 :(得分:1)
这样做,请使用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>
答案 1 :(得分:0)
对于权重=“1”的所有ImageView使用width =“0”,并在ImageView内部而不是在src中将图像设置为背景。
答案 2 :(得分:0)
android:scaleType="fitXY"
和android:adjustViewBounds="true"
。
<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>