Here you can find the source of amendMatrixForCenterCrop(ImageView imageView)
public static void amendMatrixForCenterCrop(ImageView imageView)
import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Locale; import android.annotation.SuppressLint; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.graphics.drawable.Drawable; import android.os.Build; import android.text.TextUtils; import android.widget.ImageView; public class Main{ /**/* w w w .ja va2 s .co m*/ * bitmap with alpha channel */ public static final String LOG_TAG = "BitmapUtils"; public static void amendMatrixForCenterCrop(ImageView imageView) { if (imageView == null) { return; } Drawable drawable = imageView.getDrawable(); int drawableHeight = drawable != null ? drawable .getIntrinsicHeight() : 0; int drawableWidth = drawable != null ? drawable.getIntrinsicWidth() : 0; int viewWidth = imageView.getWidth(); int viewHeight = imageView.getHeight(); if (drawableHeight <= 0 || drawableWidth <= 0 || viewWidth <= 0 || viewHeight <= 0) { return; } float horizontalScaleRatio = 1.0f * viewWidth / drawableWidth; float verticalScaleRatio = 1.0f * viewHeight / drawableHeight; if (verticalScaleRatio >= horizontalScaleRatio) { imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); } else { imageView.setScaleType(ImageView.ScaleType.MATRIX); float scaleRatio = Math.max(horizontalScaleRatio, verticalScaleRatio); Matrix matrix = new Matrix(); matrix.postScale(scaleRatio, scaleRatio); imageView.setImageMatrix(matrix); } } }