標籤:
//使用Bitmap加Matrix來縮放 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); }
//使用BitmapFactory.Options的inSampleSize參數來縮放 public static Drawable resizeImage2(String path,int width,int height) {BitmapFactory.Options options = new BitmapFactory.Options();options.inJustDecodeBounds = true;//不載入bitmap到記憶體中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));}
Android圖片縮放 指定尺寸