【发布时间】:2014-09-13 13:12:08
【问题描述】:
我一直在为以下问题苦苦挣扎。我有一个活动——让我们简单点——只有一个 ImageView。这个imageview 可以包含不同大小的图像 - 图像的 URL 由 Bundle 从以前的活动中添加。我想要实现的是为图像设置一个不能被任何类型的图像超过的最大高度,并保持纵横比。
问题之一是我不确定应该使用哪个scaleType,我也尝试添加setMaxHeight 参数但似乎没有效果。如果图像的高度没有达到最大高度,它应该明显更小。在我的情况下,宽度始终为fill_parent,问题在于高度。你怎么能做到这一点?
一开始我确实把 imageview 放到了 FrameLayout 中(后来我需要在 imageview 上放东西)。
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/imageview1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
android:src="@drawable/my_stub" />
</FrameLayout>
【问题讨论】:
-
setMaxHeight有什么问题? -
如果图像的高度大于 maxHeight 则有效。但是,如果图像具有例如2:1 纵横比(并且高度仍然大于 maxHeight)然后将图像按比例缩小直到出现全宽。如果图像的宽度大于高度,我需要缩放/裁剪图像直到达到 maxHeight。
标签: java android imageview frame