Drawable、Bitmap、byte[]之间的转换

    技术2025-11-01  8

    android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下: 1、Drawable → Bitmap 的简单方法 ((BitmapDrawable)res.getDrawable(R.drawable.youricon)).getBitmap(); 2、Drawable → Bitmap Java代码 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;  }  3.Bitmap→Drawable   的简单方法 BitmapDrawable bitmapDrawable = (BitmapDrawable)bitmap;     Drawable drawable = (Drawable)bitmapDrawable;             Bitmap bitmap = new Bitmap (...);     Drawable drawable = new BitmapDrawable(bitmap);   3、从资源中获取Bitmap Java代码 Resources res=getResources();    Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);  4、Bitmap → byte[] Java代码 private byte[] Bitmap2Bytes(Bitmap bm){      ByteArrayOutputStream baos = new ByteArrayOutputStream();        bm.compress(Bitmap.CompressFormat.PNG, 100, baos);        return baos.toByteArray();  }  5、 byte[] → Bitmap Java代码 private Bitmap Bytes2Bimap(byte[] b){              if(b.length!=0){                  return BitmapFactory.decodeByteArray(b, 0, b.length);              }              else {                  return null;              }        }

    最新回复(0)