经常被问,但从未得到答案(至少没有以可重复的方式回答)。
我有一个图像视图,其中图像比视图小。 我想将图像缩放到屏幕宽度,并调整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"
吗? - Michael Celey