2D Graphics Android

import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.util.Log;
public class BitmapResizer {
  public static Bitmap resizeImage(Bitmap image, int maxWidth, int maxHeight) {
    int imageWidth = image.getWidth();
    int imageHeight = image.getHeight();
    double imageAspect = (double) imageWidth / imageHeight;
    double canvasAspect = (double) maxWidth / maxHeight;
    double scaleFactor;
    if (imageAspect < canvasAspect) {
      scaleFactor = (double) maxHeight / imageHeight;
    } else {
      scaleFactor = (double) maxWidth / imageWidth;
    }
    float scaleWidth = ((float) scaleFactor) * imageWidth;
    float scaleHeight = ((float) scaleFactor) * imageHeight;
    // create a matrix for the manipulation
    Matrix matrix = new Matrix();
    // resize the bit map
    matrix.postScale(scaleWidth, scaleHeight);
    // recreate the new Bitmap
    return Bitmap.createScaledBitmap(image, (int) scaleWidth, (int) scaleHeight, true);
  }
}