android:在imageview中拉伸图像以适应屏幕
Posted
技术标签:
【中文标题】android:在imageview中拉伸图像以适应屏幕【英文标题】:android: stretch image in imageview to fit screen 【发布时间】:2011-06-07 18:26:53 【问题描述】:我有一个imageview
,其高度和宽度设置为fill_parent
,而linearlayout
设置了相同的值。所以我想这应该将我的图像设置为适合屏幕。但它只适合 80%(横向模式下的顶部和底部边距)。
我尝试了以下代码但没有成功:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
imgView.setMinimumWidth(width);
imgView.setMinimumHeight(height);
imgView.setMaxWidth(width);
imgView.setMaxHeight(height);
还有其他想法吗?
【问题讨论】:
虽然这是一个稍微不同的问题,this answer 应该可以帮助你。 【参考方案1】:以编程方式更改使用:
imgview.setScaleType(ScaleType.FIT_XY);
或
从xml改用:
android:scaleType="fitXY"
【讨论】:
我知道这就是您想要的,但对于您关心宽高比的图像,这会拉长它。 在 ScrollView 中为 ImageView 创造奇迹。连方面都保持正确。 同样可以在布局xml中定义,android:scaleType="fitXY" 要使图像填满所有区域并保持良好的纵横比,请使用v.setAdjustViewBounds(true); v.setScaleType(ImageView.ScaleType.CENTER_CROP);
像魅力一样工作【参考方案2】:
在你的布局的xml文件中给出android:scaleType="fitXY"
P.S :这适用于使用android:src="..."
而不是android:background="..."
设置图像的情况,因为背景默认设置为拉伸并适合视图。
【讨论】:
后台的东西没有帮我解决问题,我做错了什么吗?请看:***.com/questions/14164473/… 如果您对图像的宽度进行硬编码并希望缩放高度,这不会考虑纵横比 那我怎样才能让它适合整个屏幕呢?我希望它仍然是成比例的 +1 表示它适用于 android:src="..." 而不是 android:background="..." 这很重要【参考方案3】:尝试使用:
imageview.setFitToScreen(true);
imageview.setScaleType(ScaleType.FIT_CENTER);
这将使您的图像视图以正确的比例适合屏幕。
【讨论】:
"imageview.setFitToScreen(true);" - 那是什么?一些未记录的方法? 我正在使用 eclipse,但无法编译:imageview.setFitToScreen(true)
android中没有这样的方法。
也许他的意思是setFitsSystemWindows()
??【参考方案4】:
使用这个:
ImageView.setAdjustViewBounds(true);
【讨论】:
这与android:scaleType="fitXY"
结合使用是有效的。谢谢
@smac89 这些组合与仅使用 FIT_CENTER 有什么区别?不应该使用 FIT_CENTER?
@Jenix,请注意,我上次接触 Android 已经有一段时间了,但我相信这样做的原因 fitXY
是为了使图像按比例拉伸以适合设置的框架/视图in. 使用FIT_CENTER
听起来它只会将图像放在视图的中心,但不会填满视图。我可能是错的,但您可以尝试其中任何一个来找出有效的方法
@smac89 在询问之前我已经对它们进行了测试,并且效果相同。我很好奇原因,但现在认为您不知道 FIT_CENTER,就像我不知道您告诉我的组合一样。 :)【参考方案5】:
接受的答案是完美的,但是如果你想从 xml 中做,你可以使用android:scaleType="fitXY"
【讨论】:
【参考方案6】:我在 Xml 文件中使用了这个 android:scaleType="fitXY"
代码。
【讨论】:
【参考方案7】:只需将您的 ImageView 高度和宽度更改为 wrap_content 并使用
exampleImage.setScaleType(ImageView.ScaleType.FIT_XY);
在您的代码中。
【讨论】:
【参考方案8】:如果你使用android:scaleType="fitXY"
,那么你必须指定
android:layout_width="75dp"
和 android:layout_height="75dp"
如果使用 wrap_content 它不会延伸到你需要的东西
<ImageView
android:layout_
android:layout_
android:id="@+id/listItemNoteImage"
android:src="@drawable/MyImage"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_marginStart="12dp"
android:scaleType="fitXY"/>
【讨论】:
【参考方案9】:对于 XML 安卓
android:src="@drawable/foto1"
android:layout_
android:layout_
android:scaleType="centerCrop"
【讨论】:
以上是关于android:在imageview中拉伸图像以适应屏幕的主要内容,如果未能解决你的问题,请参考以下文章
在 imageview 中使用时从相机或画廊拍摄的图片其方向发生变化,有时在 Android 中会垂直拉伸
保存在 ImageView 中时,从自定义相机获取图像会被拉伸