Android ImageView scaleType

时间:2014-03-28 13:54:43

标签: android android-layout

我有一张用于活动背景的图片:

enter image description here

我希望这个图像适合屏幕的高度。 这意味着对于宽屏智能手机,我希望我的图像适合高度和居中:

enter image description here

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

enter image description here

我使用ImageView作为图片。我应该使用scaleType什么?看看第二个数字,我要说使用android:scaleType="centerInside"。但是看第三个,我说要使用android:scaleType="centerCrop"。什么是正确的?

4 个答案:

答案 0 :(得分:1)

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

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

imageView.setScaleType(ScaleType.CENTER_INSIDE); // or ScaleType.CENTER_CROP

答案 1 :(得分:1)

您可以拥有两种布局,每种布局都有一种布局。然后,您可以在activity的onCreate()调用中加载正确的一个。

答案 2 :(得分:1)

当你将图像的一面贴在背景上时,你将面临两个问题,第一个是屏幕宽度大于图像的宽度,或者屏幕高度大于图像高度。所以你将有空的空间。

如果您不想面对分辨率问题,并且想要将图像的两侧都放到背景中,则需要使用centerCROP。但正如我所说,如果图像的一侧不足以适合背景,图像变大,直到它被填满。

答案 3 :(得分:0)

使用centerCrop因为centerInside没有在视图中缩放图片,您必须创建具有适当高度的图像,以实现广泛筛选的智能手机背景。或者替代方案,您可以使用fitCenter通过两个轴来获得均匀缩放的图像,这些轴将填充所有背景。