Java tutorial
//package com.java2s; import android.graphics.Bitmap; import android.graphics.Matrix; public class Main { /** * Shrinks and a passed Bitmap. * * @param bm * @param maxLengthOfEdge * @return Bitmap */ public static Bitmap shrinkBitmap(Bitmap bm, int maxLengthOfEdge) { return shrinkBitmap(bm, maxLengthOfEdge, 0); } /** * Shrinks and rotates (if necessary) a passed Bitmap. * * @param bm * @param maxLengthOfEdge * @param rotateXDegree * @return Bitmap */ public static Bitmap shrinkBitmap(Bitmap bm, int maxLengthOfEdge, int rotateXDegree) { if (maxLengthOfEdge > bm.getWidth() && maxLengthOfEdge > bm.getHeight()) { return bm; } else { // shrink image float scale = (float) 1.0; if (bm.getHeight() > bm.getWidth()) { scale = ((float) maxLengthOfEdge) / bm.getHeight(); } else { scale = ((float) maxLengthOfEdge) / bm.getWidth(); } // CREATE CommonAsync MATRIX FOR THE MANIPULATION Matrix matrix = new Matrix(); // RESIZE THE BIT MAP matrix.postScale(scale, scale); matrix.postRotate(rotateXDegree); // RECREATE THE NEW BITMAP bm = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), matrix, false); matrix = null; System.gc(); return bm; } } }