如何在ImageView中缩放图像以保持纵横比

在Android中,我将ImageViewlayout_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

    下一篇: How do I do high quality scaling of a image?