在Android中放大图像以填充整个ImageView

在Android中放大图像以填充整个ImageView,android,android-layout,android-imageview,Android,Android Layout,Android Imageview,我想将图像放大,以占据ImageView的整个尺寸。这与使用scaleType=fit_center略有不同,因为如果图像纵横比与ImageView的纵横比不完全匹配,则会在图像周围留下条纹。相反,我希望图像居中并放大,以完全填充封闭视图,并将多余的部分切掉 我可以通过在onCreate()期间计算自己的自定义图像矩阵来实现这一点: 这很好,但似乎必须有一个更容易离开。有人知道一种方法可以在ImageView中放大图像,同时保留图像的纵横比并在ImageView中完全填充吗 (注意:在我的例子中

我想将图像放大,以占据ImageView的整个尺寸。这与使用
scaleType=fit_center
略有不同,因为如果图像纵横比与ImageView的纵横比不完全匹配,则会在图像周围留下条纹。相反,我希望图像居中并放大,以完全填充封闭视图,并将多余的部分切掉

我可以通过在onCreate()期间计算自己的自定义图像矩阵来实现这一点:

这很好,但似乎必须有一个更容易离开。有人知道一种方法可以在ImageView中放大图像,同时保留图像的纵横比并在ImageView中完全填充吗


(注意:在我的例子中,我的ImageView占据了整个屏幕,因此我使用
getWindowManager().getDisplay()
来查找所需的图像大小。您不能使用
splashView.getWidth()
/
getHeight()
,因为视图尚未布局并且没有大小)

请尝试ImageView的scaleType属性

您可以使用android:scaleType=“centerCrop”。 保持纵横比并按需要缩放图像

欲了解更多信息,请点击以下链接


在某些情况下,您所需要的只是

android:adjustViewBounds="true"
这对我在整个图像视图中拟合图像起到了作用,而且它说“ScaleType.fit_XY”来拟合图像视图的X轴和Y轴也是有意义的

从xml文件中可以看到:

android:scaleType="fitXY"

它没有保持纵横比!我有layout\u height=wrap\u content,layout\u width=fill\u parent,宽高比消失了,图像有屏幕宽度,但高度错了(它太短了,就像它应该有的高度的40%)。我刚刚在上面的评论中修复了这个问题:android:adjustViewBounds=“true”。这会将图像剪切到边界上!这就是问题所在,“任何多余的部分都要剪掉”
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
android:scaleType="fitXY"