【发布时间】:2012-12-09 04:12:16
【问题描述】:
经常被问到,从不回答(至少不是以可重复的方式)。
我有一个图像视图,其中的图像比视图小。我想将图像缩放到屏幕的宽度并调整 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"吗? -
@BrainSlugs83 我有,它仍然对我有用。此外,提出问题是为了确定提问者尝试了什么。不需要刻薄,尤其是在发布后的七个月内。
-
它不起作用。 - 见下文;另外,我已经尝试过并且可以验证它不起作用(如果您尝试过并看到不同的结果,请在下面讨论并向我们展示我们做错了什么——我能得出的唯一结论是您误解了问题,或者没有尝试过)。
标签: android imageview image-scaling