Android ImageView缩放类型

Android ImageView缩放类型,android,android-layout,Android,Android Layout,我有一个图像要在活动中用作背景: 我想让这张图片和屏幕的高度相匹配。 这意味着,对于宽屏幕智能手机,我希望我的图像符合高度和居中: 对于方屏智能手机,我希望我的图像被剪切: 我对图像使用ImageView。我应该使用什么scaleType?看第二幅图,我想使用android:scaleType=“centerInside”。但是看看第三个,我想使用android:scaleType=“centerCrop”。什么是正确的?您对不同的scaleType的评估是正确的。如果希望整个图像可见,请

我有一个图像要在活动中用作背景:

我想让这张图片和屏幕的高度相匹配。 这意味着,对于宽屏幕智能手机,我希望我的图像符合高度和居中:

对于方屏智能手机,我希望我的图像被剪切:


我对图像使用
ImageView
。我应该使用什么
scaleType
?看第二幅图,我想使用
android:scaleType=“centerInside”
。但是看看第三个,我想使用
android:scaleType=“centerCrop”
。什么是正确的?

您对不同的
scaleType的评估是正确的。如果希望整个图像可见,请使用
“centerInside”
,或者如果希望填充整个视图,请使用
centerCrop

要混合使用这两种方法,可以在
onCreate()
方法中设置
scaleType
。根据您想要的行为,您可以检查屏幕的方向或大小,并设置适当的选择


imageView.setScaleType(ScaleType.CENTER_-INSIDE);//或者ScaleType.CENTER\u CROP

您可以有两种布局,每种配置一种。然后,可以在活动的onCreate()调用中加载适当的

使用
centerCrop
,因为
centerInside
不会在视图中缩放图像,您必须创建具有适当高度的图像以实现宽屏幕背景填充。或者,您可以使用
fitCenter
通过两个轴获得均匀缩放的图像,这将填充所有背景。

当您将图像的一侧与背景匹配时,您将面临两个问题,第一个问题是屏幕宽度大于图像宽度,或者屏幕高度大于图像高度。因此,您将有空白空间


如果您不想面对分辨率问题,并且希望将图像的两侧都适合背景,则需要使用
centerCROP
。但正如我所说的,如果图像的一侧不适合背景,则图像会变大,直到填充为止。

这实际上是不正确的<代码>中心内部
将缩放以适合图像,但不会超过视图的尺寸<代码>居中不缩放图像,只将图像居中显示在视图中。形象。您可以在这里阅读不同类型的完整描述:您是对的,但任务不是显示未失真的背景图像。