经常被问到,从不回答(至少不是以可重复的方式)。
我有一个图像视图,其图像小于视图。我想将图像缩放到屏幕的宽度并调整 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
。它将根据视图高度垂直扭曲图像。