我有一张用于活动背景的图片:
我希望这个图像适合屏幕的高度。 这意味着对于宽屏智能手机,我希望我的图像适合高度和居中:
对于方形屏幕智能手机,我希望剪切我的图像:
我使用ImageView
作为图片。我应该使用scaleType
什么?看看第二个数字,我要说使用android:scaleType="centerInside"
。但是看第三个,我说要使用android:scaleType="centerCrop"
。什么是正确的?
答案 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
通过两个轴来获得均匀缩放的图像,这些轴将填充所有背景。