Android开发:Bitmap与drawable之间的转化


Android开发学习笔记,Drawable 转 bitmap时需要区分drawable是属于哪一类的图标,如果是NinePatchDrawable就不能直接转为BitmapDrawable来取得Bitmap了。

  1. /** 
  2.      * Bitmap转化为drawable 
  3.      * @param bitmap 
  4.      * @return 
  5.      */  
  6.     public static Drawable bitmap2Drawable(Bitmap bitmap){  
  7.         return new BitmapDrawable(bitmap) ;  
  8.     }  
  9.       
  10.     /** 
  11.      * Drawable 转 bitmap 
  12.      * @param drawable 
  13.      * @return 
  14.      */  
  15.     public static Bitmap drawable2Bitmap(Drawable drawable){  
  16.         if(drawable instanceof BitmapDrawable){  
  17.             return ((BitmapDrawable)drawable).getBitmap() ;  
  18.         }else if(drawable instanceof NinePatchDrawable){  
  19.             Bitmap bitmap = Bitmap  
  20.                     .createBitmap(  
  21.                             drawable.getIntrinsicWidth(),  
  22.                             drawable.getIntrinsicHeight(),  
  23.                             drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888  
  24.                                     : Bitmap.Config.RGB_565);  
  25.             Canvas canvas = new Canvas(bitmap);  
  26.             drawable.setBounds(00, drawable.getIntrinsicWidth(),  
  27.                     drawable.getIntrinsicHeight());  
  28.             drawable.draw(canvas);  
  29.             return bitmap;  
  30.         }else{  
  31.             return null ;  
  32.         }  
  33.     }  

相关内容