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

人生难得几回搏,此时不搏待何时。这篇文章主要讲述Android中 Bitmap和Drawable相互转换的方法相关的知识,希望能为你提供帮助。
1、Drawable --> Bitmap
[java] view plain copy

  1.         Bitmap  drawable2Bitmap(Drawable  drawable)  {   
  2.                 if  (drawable  instanceof  BitmapDrawable)  {   
  3.                         return  ((BitmapDrawable)  drawable).getBitmap();    
  4.                 }  else  if  (drawable  instanceof  NinePatchDrawable)  {   
  5.                         Bitmap  bitmap  =  Bitmap   
  6.                                         .createBitmap(   
  7.                                                         drawable.getIntrinsicWidth(),   
  8.                                                         drawable.getIntrinsicHeight(),   
  9.                                                         drawable.getOpacity()  !=  PixelFormat.OPAQUE  ?  Bitmap.Config.ARGB_8888   
  10.                                                                         :  Bitmap.Config.RGB_565);    
  11.                         Canvas  canvas  =  new  Canvas(bitmap);    
  12.                         drawable.setBounds(0,  0,  drawable.getIntrinsicWidth(),   
  13.                                         drawable.getIntrinsicHeight());    
  14.                         drawable.draw(canvas);    
  15.                         return  bitmap;    
  16.                 }  else  {   
  17.                         return  null;    
  18.                 }   
  19.         }   
【Android中 Bitmap和Drawable相互转换的方法】

2、从资源中获取的Drawable --> Bitmap
[java] view plain copy
  1.         Resources  res  =  getResources();    
  2.         Bitmap  bmp  =  BitmapFactory.decodeResource(res,  R.drawable.pic);    
 
3、Bitmap --> Drawable
[java] view plain copy
  1.         Drawable  bitmap2Drawable(Bitmap  bitmap)  {   
  2.                 return  new  BitmapDrawable(bitmap);    
  3.         }   
 
4、Bitmap --> byte[]
[java] view plain copy
  1.         byte[]  Bitmap2Bytes(Bitmap  bm)  {   
  2.                 ByteArrayOutputStream  baos  =  new  ByteArrayOutputStream();    
  3.                 bm.compress(Bitmap.CompressFormat.PNG,  100,  baos);    
  4.                 return  baos.toByteArray();    
  5.         }   
 
5、 byte[] --> Bitmap
[java] view plain copy
    1.         Bitmap  Bytes2Bimap(byte[]  b)  {   
    2.                 if  (b.length  !=  0)  {   
    3.                         return  BitmapFactory.decodeByteArray(b,  0,  b.length);    
    4.                 }  else  {   
    5.                         return  null;    
    6.                 }   
    7.         }   


    推荐阅读