Bitmap 与Drawable相互转换

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并返回

    }

 

 

你可能感兴趣的:(drawable)