Android 中 Bitmap 和 Drawable 相互转换的方法

来源:互联网 发布:和msqrd差不多的软件 编辑:程序博客网 时间:2024/05/22 02:04

Drawable —> Bitmap

  • 获取资源文件(Drawable)中的 Bitmap
Resources res = getResources();Bitmap    bmp = BitmapFactory.decodeResource(res, R.drawable.ic_logo);

或者

Resource res      = gerResource();Drawable drawable = res.getDrawable(id);//获取drawableBitmapDrawable bd = (BitmapDrawable) drawable;Bitmap bm         = bd.getBitmap();
  • Drawable 转化成 Bitmap 的通用方法
     public static Bitmap drawableToBitmap(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;    }

Bitmap —> Drawable

Drawable drawable = new BitmapDrawable(bmp);

Bitmap —> byte[]

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

byte[] —> Bitmap

    public static Bitmap Bytes2Bimap(byte[] b) {        if (b.length != 0) {            return BitmapFactory.decodeByteArray(b, 0, b.length);        } else {            return null;        }    }
1 2
原创粉丝点击