Android ImageView的ScaleType和项目高度

20
起初看起来很简单,但最终结果不好。我有一张图片,它的宽度比屏幕宽度大。所以我需要在我的图像视图中将其缩小。我查看了ScaleType选项并尝试了它们所有的选项,但都不行。首先,“center”只显示在布局上居中的图像,没有缩放。"fitCenter"将图像缩放以适合我的布局,但有一个主要缺点:项目的高度保持与其中有大图像时相同。请看附图中的第二个屏幕。我如何强制列表项缩小其高度以包裹文本和图像?

enter image description here

4个回答

51

使用适合您的缩放类型(我猜您喜欢用fitCenter看到的效果)。您必须做的额外事情是在ImageView中添加

android:adjustViewBounds="true"

标签。

或者您可以选择FitXY,但有时结果可能不完全符合您的要求。


是的,这就是缺失的属性。使用adjustViewBounds和fitCenter可以正常工作。 - Alin
我有一张1000*800的图片,但是我无法使用任何属性获取完整的ImageView。如果有任何组合可以实现,请帮助我解决。 - Gnanam R
需要更多信息,例如imageview是否在一个比您的图像尺寸更小的布局中,以及图像是如何设置的。 - Shubhayu
@Shubhayu:我有一个问题,想要将我的图像拉伸到我的ImageView并保持其纵横比。例如,我想在所有大小的屏幕上显示必须显示的标题图像中使用这样的图像。 - Mahdi
@Kenji 如果你想拉伸图片,那么你必须确保你的ImageView与src图像具有相同的纵横比,并使用fitXY在scaleType中。如果你不维护纵横比,那么任何其他的scaleTypes都会导致src图像被裁剪或空白区域显示你的imageview背景。 - Shubhayu

3

use android:scaleType="fitXY"


2

你可以使用FitXY吗? 如果您知道要将图像放入的区域的大小,则此方法可行。 CentreInside也可能可行,我用它来缩小图像,但我认为这取决于您是否控制边界布局元素的大小。


0

你要么在外部容器上设置 android:height = "wrap_content",要么设置 TextBox 的静态高度,并给 ImageView 设置 android:weight = "1",这样 ImageView 将占据容器中剩余的空间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接