Here you can find the source of decodeUri(Context ctx, Uri selectedImage)
public static Bitmap decodeUri(Context ctx, Uri selectedImage) throws FileNotFoundException
//package com.java2s; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import java.io.FileNotFoundException; public class Main { public static Bitmap decodeUri(Context ctx, Uri selectedImage) throws FileNotFoundException { // Decode image size BitmapFactory.Options o = new BitmapFactory.Options(); o.inJustDecodeBounds = true;//from ww w. j a v a 2 s .c o m BitmapFactory.decodeStream(ctx.getContentResolver() .openInputStream(selectedImage), null, o); // The new size we want to scale to final int REQUIRED_SIZE = 240; // Find the correct scale value. It should be the power of 2. int width_tmp = o.outWidth, height_tmp = o.outHeight; int scale = 1; while (true) { if (width_tmp / 2 < REQUIRED_SIZE || height_tmp / 2 < REQUIRED_SIZE) { break; } width_tmp /= 2; height_tmp /= 2; scale *= 2; } // Decode with inSampleSize BitmapFactory.Options o2 = new BitmapFactory.Options(); o2.inSampleSize = scale; return BitmapFactory.decodeStream(ctx.getContentResolver() .openInputStream(selectedImage), null, o2); } }