猿问

如何在图像视图中缩放图像以保持高宽比

如何在图像视图中缩放图像以保持高宽比

在Android中,我定义了一个ImageViewlayout_width成为fill_parent(这占用了电话的全部宽度)。

如果我放的图像ImageViewlayout_widthAndroid会放大的,对吧?但是身高呢?当Android缩放图像时,它会保持高宽比吗?

我发现在顶部和底部都有一些空白。ImageView当Android缩放比ImageView..是真的吗?如果是的话,我怎样才能消除这个空白呢?


Smart猫小萌
浏览 558回答 3
3回答

慕虎7371278

是的,默认情况下,Android会缩小你的图像以适应ImageView,保持高宽比。但是,请确保使用以下方法将图像设置为ImageViewandroid:src="..."而不是android:background="...". src=使其缩放图像保持高宽比,但是background=使其规模和扭曲图像,使其与图像视图的大小完全匹配。(不过,您可以同时使用背景和源,这对于像在主图像周围显示一个框架(只使用一个ImageView)是很有用的。)你也应该看到android:adjustViewBounds若要使ImageView自身调整大小以适应重新缩放的图像,请执行以下操作。例如,如果在通常为正方形的ImageView中有一个矩形图像,那么AdapViewBound=true将使其将ImageView的大小调整为矩形。这将影响其他视图在ImageView周围的布局方式。然后,正如Samu所写的,您可以使用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"
随时随地看视频慕课网APP

相关分类

Android
我要回答