Java tutorial
//package com.java2s; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.PixelFormat; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; public class Main { public static Drawable zoomDrawable(Drawable drawable, int width, int height) { if (null == drawable) return null; return bitmapToDrawable(zoomBitmap(drawableToBitmap(drawable), width, height)); } @SuppressWarnings("deprecation") public static Drawable bitmapToDrawable(Bitmap bitmap) { if (null == bitmap) return null; return new BitmapDrawable(bitmap); } public static Bitmap zoomBitmap(Bitmap bitmap, int width, int height) { if (bitmap == null) return bitmap; int bitmapWidth = bitmap.getWidth(); int bitmapHeight = bitmap.getHeight(); Matrix matrix = new Matrix(); float scaleWidth = ((float) width / bitmapWidth); float scaleHeight; if (height == 0) scaleHeight = scaleWidth; else scaleHeight = ((float) height / bitmapHeight); matrix.postScale(scaleWidth, scaleHeight); Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, bitmapWidth, bitmapHeight, matrix, true); return newbmp; } public static Bitmap zoomBitmap(Bitmap bitmap, int width) { return zoomBitmap(bitmap, width, 0); } public static Bitmap drawableToBitmap(Drawable drawable) { if (null == drawable) return null; int w = drawable.getIntrinsicWidth(); int h = drawable.getIntrinsicHeight(); Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565; Bitmap bitmap = Bitmap.createBitmap(w, h, config); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, w, h); drawable.draw(canvas); return bitmap; } }