经常问,从不回答(至少不是以可重复的方式)。
我有一个图像视图与图像是 更小比视图。我想缩放图像到屏幕的宽度,并调整 ImageView 的高度以反映图像的比例正确的高度。
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
这导致图像以原始尺寸为中心(比屏幕宽度小) ,边距为边距。不好。
所以我加了一句
android:adjustViewBounds="true"
同样的效果,不好。我加了
android:scaleType="centerInside"
同样的效果,不好。我把 centerInside
改成了 fitCenter
。同样的效果,不好。我把 centerInside
改成了 centerCrop
。
android:scaleType="centerCrop"
现在,最后,图像是 比例到屏幕的宽度-但是 被剪掉了在顶部和底部!所以我把 centerCrop
改成了 fitXY
。
android:scaleType="fitXY"
现在图像按照屏幕的宽度缩放,但是 没有按照 y 轴缩放,得到的是 扭曲图像。
去除 android:adjustViewBounds="true"
没有效果。增加一个 android:layout_gravity
,像其他地方建议的那样,也没有效果。
我试过其他的组合,但都没用,所以,有人知道吗:
如何设置 ImageView 的 XML 以填充屏幕的宽度,缩放较小的图像以填充整个视图,以及在不失真或裁剪的情况下显示图像的长宽比?
编辑: 我还试着设置一个任意的数字高度。这只对 centerCrop
设置有影响。它会根据视图高度使图像垂直变形。