相关疑难解决方法(0)

Android ImageView缩小图像到宽度,灵活高度,无裁剪或失真

经常被问到,从来没有回答过(至少不是以可重复的方式).

我有一个图像视图,其图像小于视图.我想将图像缩放到屏幕的宽度,并调整ImageView的高度以反映图像的比例正确高度.

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
/>
Run Code Online (Sandbox Code Playgroud)

这导致图像以其原始尺寸(小于屏幕宽度)为中心,边缘为边缘.不好.

所以我补充道

android:adjustViewBounds="true" 
Run Code Online (Sandbox Code Playgroud)

同样的效果,没有好处.我补充道

android:scaleType="centerInside"
Run Code Online (Sandbox Code Playgroud)

同样的效果,没有好处.我换centerInsidefitCenter.同样的效果,没有好处.我换centerInsidecenterCrop.

android:scaleType="centerCrop"
Run Code Online (Sandbox Code Playgroud)

现在,最后,图像缩放到屏幕的宽度 - 但在顶部和底部裁剪!所以我改变了centerCropfitXY.

android:scaleType="fitXY"
Run Code Online (Sandbox Code Playgroud)

现在,图像缩放到屏幕的宽度,但没有在y轴上缩放,导致图像失真.

删除android:adjustViewBounds="true"无效.android:layout_gravity如其他地方所建议的,添加一个也没有效果.

我尝试过其他组合 - 无济于事.所以,请有人知道:

如何设置ImageView的XML来填充屏幕的宽度,缩放较小的图像以填充整个视图,显示具有宽高比的图像而不会失真或裁剪?

编辑:我也尝试设置任意数字高度.这仅对centerCrop设置有影响.它会根据视图高度垂直扭曲图像.

android imageview image-scaling

77
推荐指数
5
解决办法
8万
查看次数

标签 统计

android ×1

image-scaling ×1

imageview ×1