Drawable 转 Bitmap
import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.graphics.drawable.BitmapDrawable; Drawable d = getResource().getDrawable(R.id.background); BitmapDrawable bd = (BitmapDrawable) d; Bitmap bp = bd.getBitmap();
Bitmap 转 Drawable
Bitmap bm=XXX; Drawable bd=(Drawable)(new BitmapDrawable(bm)); //因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。
Drawable 缩放:
static Bitmap zoomDrawable(Drawable drawable, int w, int h) { int width = drawable.getIntrinsicWidth(); int height= drawable.getIntrinsicHeight(); Bitmap oldbmp = ((BitmapDrawable)drawable).getBitmap(); Matrix matrix = new Matrix(); // 创建操作图片用的Matrix对象 float scaleWidth = ((float)w / width); // 计算缩放比例 float scaleHeight = ((float)h / height); matrix.postScale(scaleWidth, scaleHeight); // 设置缩放比例 Bitmap newbmp = Bitmap.createBitmap(oldbmp, 0, 0, width, height, matrix, true); // 建立新的bitmap,其内容是对原bitmap的缩放后的图 return newbmp; // 把bitmap转换成drawable并返回 }