Android Image Scaling
// Use Bitmap and Matrix to scale public static Drawable resizeImage (Bitmap bitmap, int w, int h) {Bitmap BitmapOrg = bitmap; int width = BitmapOrg. getWidth (); int height = BitmapOrg. getHeight (); int newWidth = w; int newHeight = h; float scaleWidth = (float) newWidth)/width; float scaleHeight = (float) newHeight)/height; matrix matrix = new Matrix (); matrix. postScale (scaleWidth, scaleHeight); // if you want to rotate the Bitmap // matrix. postRotate (45); Bitmap resizedBitmap = Bitmap. createBitmap (BitmapOrg, 0, 0, width, height, matrix, true); return new BitmapDrawable (resizedBitmap );}
// Use BitmapFactory. the inSampleSize parameter of Options is used to scale public static Drawable resizeImage2 (String path, int width, int height) {BitmapFactory. options options = new BitmapFactory. options (); options. inJustDecodeBounds = true; // do not load bitmap into the memory BitmapFactory. decodeFile (path, options); int outWidth = options. outWidth; int outHeight = options. outHeight; options. inDither = false; options. inPreferredConfig = Bitmap. config. ARGB _ 8888; options. inSampleSize = 1; if (outWidth! = 0 & outHeight! = 0 & width! = 0 & height! = 0) {int sampleSize = (outWidth/width + outHeight/height)/2; Log. d (tag, "sampleSize =" + sampleSize); options. inSampleSize = sampleSize;} options. inJustDecodeBounds = false; return new BitmapDrawable (BitmapFactory. decodeFile (path, options ));}