Android开发:Bitmap与drawable之间的转化
Android开发:Bitmap与drawable之间的转化
Android开发学习笔记,Drawable 转 bitmap时需要区分drawable是属于哪一类的图标,如果是NinePatchDrawable就不能直接转为BitmapDrawable来取得Bitmap了。
- /**
- * Bitmap转化为drawable
- * @param bitmap
- * @return
- */
- public static Drawable bitmap2Drawable(Bitmap bitmap){
- return new BitmapDrawable(bitmap) ;
- }
- /**
- * Drawable 转 bitmap
- * @param drawable
- * @return
- */
- public static Bitmap drawable2Bitmap(Drawable drawable){
- if(drawable instanceof BitmapDrawable){
- return ((BitmapDrawable)drawable).getBitmap() ;
- }else if(drawable instanceof NinePatchDrawable){
- 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);
- drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
- drawable.getIntrinsicHeight());
- drawable.draw(canvas);
- return bitmap;
- }else{
- return null ;
- }
- }
评论暂时关闭