在Android中缩放图像以填充整个ImageView
我想缩放一个图像,占据整个ImageView的大小。 这与使用scaleType=fit_center
差别scaleType=fit_center
因为如果图像纵横比与ImageView纵横比不完全匹配, fit_center会在图像周围留下条带。 相反,我希望图像能够居中放大并完全填充封闭的视图,并将任何多余的部分切掉。
我能够通过在onCreate()期间计算自己的自定义图像matrix来实现这一点:
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()
因为视图hasn还没有布置,没有一个大小)
你可以使用android:scaleType="centerCrop"
。 保持宽高比并按照您的需要缩放图像。
欲了解更多信息,请通过下面的链接
http://developer.android.com/reference/android/widget/ImageView.html#attr_android:scaleType
尝试您的ImageView的scaleType属性。 http://developer.android.com/reference/android/widget/ImageView.html#attr_android:scaleType