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.     }  


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.     }  


    本文转自 一点点征服   博客园博客,原文链接: http://www.cnblogs.com/ldq2016/p/7058127.html ,如需转载请自行联系原作者


相关文章
|
4天前
|
Android开发
Android调用相机与相册的方法1
Android调用相机与相册的方法
39 0
|
4天前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
64 0
|
4天前
|
XML 存储 编解码
android 目录结构中 drawable(hdpi,ldpi,mdpi) 的区别
android 目录结构中 drawable(hdpi,ldpi,mdpi) 的区别
12 1
|
4天前
|
机器学习/深度学习 Java Shell
[RK3568][Android12.0]--- 系统自带预置第三方APK方法
[RK3568][Android12.0]--- 系统自带预置第三方APK方法
44 0
|
3天前
|
Android开发
Android获取蓝牙设备列表的方法
Android获取蓝牙设备列表的方法
14 5
|
3天前
|
Android开发
Android获取当前系统日期和时间的三种方法
Android获取当前系统日期和时间的三种方法
16 4
|
3天前
|
API 开发工具 Android开发
调用Android原生@SystemApi、@Hide方法
调用Android原生@SystemApi、@Hide方法
8 1
|
4天前
|
程序员 Android开发
Android亮度调节的几种实现方法
Android亮度调节的几种实现方法
11 0
|
4天前
|
Shell Android开发
Android Activity重写dump方法实现通过adb调试代码
Android Activity重写dump方法实现通过adb调试代码
17 0
|
4天前
|
Android开发
Android APP 隐藏系统软键盘的方法
Android APP 隐藏系统软键盘的方法
32 0