【发布时间】:2012-02-10 19:00:40
【问题描述】:
更新: 多设备屏幕尺寸是一个红鲱鱼 - 问题只是图像没有正确放大以填充屏幕 - 请参阅伊万回答中的 cmets。
我有一个包含一张图片的布局文件:
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerCrop" />
然后我分配一个drawable,它很小,必须按比例放大:
setContentView(R.layout.image_story);
ImageView image = (ImageView)findViewById(R.id.image);
image.setImageDrawable(s.image);
这是它在两个具有不同屏幕尺寸的 AVD 上的呈现方式。这些应该是相同的(底部的详细问题)。抱歉,图片太大了。
使用 scaleType=centerCrop:
居中
AVD:
编辑:
使用 layout_height="fill_parent" 和 scaleType="centerInside"
我有一个带有默认值的 2.1 AVD,所以屏幕更小,这完全符合预期 - 图像被放大以填充宽度,视图高度被包裹到缩放高度。
在我的具有较长屏幕的 Droid Bionic 和任何具有相同屏幕尺寸的 AVD 上,这不起作用 - 图像被缩放以填充宽度,但视图被包裹到 原始 预缩放图像高度,因此顶部和底部被裁剪掉。
我不知道为什么设备屏幕纵横比会对此产生影响。我已经尝试了无数布局参数和比例类型的组合,试图让它在仿生上工作。一切都在较小的屏幕上完全按预期工作,而不是在较大的屏幕上。如果我在dp 中明确设置图像高度,它会按预期工作,但我永远不知道图像(或屏幕)的尺寸是多少。有什么建议吗?
【问题讨论】:
-
屏幕截图可能会有所帮助,因为我不太确定我在描绘正确的东西。
-
添加了屏幕截图 - 这有帮助吗?较小的屏幕在放大图像时给出了预期的结果。较大的是使用未缩放的大小来调整 ImageView 的大小。
-
您确定要 layout_height=wrap_content 吗?
-
我希望
ImageView的高度不大于缩放后的图像,因为最终版本将在图像下方有更多视图,所以我相信是的。我已经用 height=fill_parent 的截图更新了这个问题,因为它也不能正常工作。 -
问题是什么?请写在你的文章末尾
标签: android android-layout android-imageview