我想放大图像以占据 ImageView 的整个大小。这与使用略有不同scaleType=fit_center
因为健身中心 http://developer.android.com/intl/fr/reference/android/graphics/Matrix.ScaleToFit.html#CENTER如果图像长宽比与 ImageView 的长宽比不完全匹配,则会在图像周围留下条带。相反,我希望图像居中并放大以完全填充封闭的视图,并剪掉任何多余的部分。
我可以通过在 onCreate() 期间计算我自己的自定义图像矩阵来实现此目的:
final Display display = getWindowManager().getDefaultDisplay();
final float screenWidth = display.getWidth();
final float screenHeight = display.getHeight();
final float imageWidth = splashView.getDrawable().getIntrinsicWidth();
final float imageHeight = splashView.getDrawable().getIntrinsicHeight();
final Matrix splashMatrix = new Matrix();
final float scale = Math.max(screenHeight/imageHeight,screenWidth/imageWidth);
splashMatrix.postScale( scale, scale );
splashView.setImageMatrix(splashMatrix);
这工作得很好,但似乎必须有一个更简单的方法。有谁知道如何在 ImageView 中放大图像,同时保留图像的纵横比并完全填充 ImageView 吗?
(注意:在我的例子中,我的 ImageView 占据了全屏,所以我使用getWindowManager().getDisplay()
找到所需的图像尺寸。你不能使用splashView.getWidth()
/getHeight()
因为视图还没有布局并且没有尺寸)
您可以使用android:scaleType="centerCrop"
。
保持纵横比并按照您想要的方式缩放图像。
欲了解更多信息,请访问以下链接
http://developer.android.com/reference/android/widget/ImageView.html#attr_android:scaleType http://developer.android.com/reference/android/widget/ImageView.html#attr_android:scaleType
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)