将图像缩放到最大可用宽度,保持宽高比并避免ImageView额外的空间

我有这个简单的布局XML和一个30X30像素的green_square.png文件

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ImageView android:background="@color/red" android:layout_width="fill_parent" android:layout_height="fill_parent" android:adjustViewBounds="true" android:scaleType="fitStart" android:src="@drawable/green_square"/> </LinearLayout> 

我想要实现的是缩放图像来填充父宽度,保持高宽比,没有额外的ImageView空间。

我为ImageView添加了一个红色的背景,只是为了引用我想避免的额外空间。

这是我的目标

Solutions Collecting From Web of "将图像缩放到最大可用宽度,保持宽高比并避免ImageView额外的空间"

 <ImageView android:id="@+id/game" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="centerCrop" android:adjustViewBounds="true" android:src="@drawable/ic_game" /> 

这对我有用。 父母和中心作物的宽度保持宽高比

在我看来,这个ImageView额外的布局是一个错误。 我也有同样的事情发生。 因此,我想要遵循green_square遵循额外的布局。 所以我所做的是指定相对于屏幕底部的文字。 这样,文本将超过额外的布局。 我承认,这不是最好的解决scheme,但它看起来比green_square和text之间有一个巨大的空间要好得多。

这很简单 只要使宽度fill_parent和高度wrap_content。 这是我想出来的。

 <ImageView android:id="@+id/game" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="centerCrop" android:adjustViewBounds="true" android:src="@drawable/ic_game" /> 

使用缩放types“fitCenter”或“fitxy”

尝试这个,

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/red" android:scaleType="centerCrop" android:src="@drawable/green_square" /> </LinearLayout>