14

我需要类似<img width="100%" />Android 的东西<ImageView>。我的意思是将宽度调整为所有可用空间(缩小或放大图像宽度)并自动更改高度以保持纵横比。

Something like <ImageView android:layout_width="match_parent" android:layout_height="auto">

使用android:scaleType="fitCenter"我想要的图像,但仅使用图像,不会改变视图本身的高度。当我将展位尺寸设置为 match_parent 时,我会得到我想要的,但前提是我在屏幕上只有一张图像。但我需要一些图片下的文字。

这是创建 ImageView 的子项的唯一方法吗?例如android:adjustViewBounds="true"不为我做任何事情。

4

1 回答 1

18

我发现问题出在哪里。ImageView 的默认实现不能放大图像。如果图像大于屏幕宽度 android:adjustViewBounds="true" 正常工作并调整高度以保持图像的纵横比。但是,如果图像小于屏幕宽度,则不会对其进行放大。

这是由这段代码引起的

if (newHeight <= heightSize) {
    heightSize = newHeight;
} 

在 ImageView 类中(第 688 行,API 10)

我制作了 ImageView 的特殊子项,它允许放大图像以适应宽度。

这里是:https ://gist.github.com/tprochazka/5486822

于 2011-06-06T16:57:59.693 回答