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