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

Shl*_*rtz 17 layout android scale fill-parent

我有这个简单的布局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>
Run Code Online (Sandbox Code Playgroud)

我想要实现的是缩放图像以填充父宽度,保持它的纵横比,而没有ImageView的额外空间.

我在ImageView中添加了一个红色背景,仅供参考我想要避免的额外空间.

这是我的目标

Blu*_*ion 39

<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" 
        />
Run Code Online (Sandbox Code Playgroud)

这对我有用.父和中心裁剪的全宽以保持纵横比

  • `centerCrop`将图像拉伸到整个宽度,但由于_view_保持原始高度不变,可能会从顶部和底部裁剪,但图像宽高比保持不变,因此不会被压扁或拉伸.`adjustViewBounds`允许高度增长以避免实际裁剪,并使_view_也保持图像的纵横比.一起使用,它们可以完成OP所需的操作. (3认同)
  • 为我工作.应该是公认的解决方案.谢谢! (2认同)

小智 -1

使用比例类型“fitCenter”或“fitxy”