如何在ImageView中缩放图像以保持纵横比
在Android中,我将ImageView
的layout_width
定义为fill_parent
(占用了手机的全部宽度)。
如果我放入ImageView
的图像大于layout_width
,Android会缩放它,对吧? 但是身高呢? 当Android缩放图像时,它会保持宽高比吗?
我发现当Android缩放大于ImageView
的图像时, ImageView
的顶部和底部会有一些空白区域。 真的吗? 如果是的话,我怎样才能消除这个空白?
是的,默认情况下,Android会缩小图像以适应ImageView,从而保持纵横比。 但是,请确保您使用android:src="..."
而不是android:background="..."
将图像设置为ImageView。 src=
使其缩放图像保持宽高比,但background=
使其缩放和扭曲图像以使其与ImageView的大小完全吻合。 (但是,您可以同时使用背景和源,对于像在主图像周围显示框架这样的内容,只需使用一个ImageView即可)。
您还应该看到android:adjustViewBounds
以使ImageView调整自己以适应重新缩放的图像。 例如,如果在通常为正方形的ImageView中有一个矩形图像,则adjustViewBounds = true将使其将ImageView调整为矩形。 这影响了ImageView周围其他视图的布局。
然后,Samuh写道,您可以使用android:scaleType
参数更改默认缩放图像的方式。 顺便说一下,最简单的方法来发现它的工作原理就是尝试一下自己! 只要记住看看模拟器本身(或实际手机)的布局,因为Eclipse中的预览通常是错误的。
请参阅android:adjustViewBounds
。
如果您希望ImageView调整其边界以保持其可绘制的高宽比,请将其设置为true。
对于有此特定问题的任何人。 您有一个ImageView
(或其他View
),您希望具有fill_parent
的宽度和按比例缩放的高度:
将这两个属性添加到您的ImageView
:
android:adjustViewBounds="true"
android:scaleType="centerCrop"
并将ImageView
宽度设置为fill_parent
并将高度设置为wrap_content
。
另外,如果您不希望裁剪图像,请尝试以下操作:
android:adjustViewBounds="true"
android:layout_centerInParent="true"
链接地址: http://www.djcxy.com/p/50281.html
上一篇: How to scale an Image in ImageView to keep the aspect ratio