首页 > 代码库 > Android -- Drawable && Bitmap

Android -- Drawable && Bitmap

Bitmap转Drawable                                                                    

Bitmap bm=xxx; BitmapDrawable bd=new BitmapDrawable(bm);

因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。

Drawable转Bitmap                                                                    

Drawable d=xxx; BitmapDrawable bd = (BitmapDrawable) d;Bitmap bm = bd.getBitmap();

最终bm就是我们需要的Bitmap对象了。

从资源中获取Bitmap                                                                  

public static Bitmap getBitmapFromResources(Activity act, int resId) {    Resources res = act.getResources();    return BitmapFactory.decodeResource(res, resId);}

byte[] → Bitmap                                                                     

public static Bitmap convertBytes2Bimap(byte[] b) {    if (b.length == 0) {        return null;    }    return BitmapFactory.decodeByteArray(b, 0, b.length);}

Bitmap → byte[]                                                                     

public static byte[] convertBitmap2Bytes(Bitmap bm) {    ByteArrayOutputStream baos = new ByteArrayOutputStream();    bm.compress(Bitmap.CompressFormat.PNG, 100, baos);    return baos.toByteArray();}

Drawable → Bitmap                                                                  

public static Bitmap convertDrawable2BitmapByCanvas(Drawable drawable) {    Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight(),drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565);    Canvas canvas = new Canvas(bitmap);    // canvas.setBitmap(bitmap);    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),    drawable.getIntrinsicHeight());    drawable.draw(canvas);    return bitmap;}

我是天王盖地虎的分割线                                                             

Android -- Drawable && Bitmap