zoukankan      html  css  js  c++  java
  • Android中 Bitmap和Drawable相互转换的方法

    1、Drawable --> Bitmap

    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

    1.     Resources res = getResources();  
    2.     Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.pic);  

    3、Bitmap --> Drawable

    1.     Drawable bitmap2Drawable(Bitmap bitmap) {  
    2.         return new BitmapDrawable(bitmap);  
    3.     }  

    4、Bitmap --> byte[]

    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

      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.     }  
  • 相关阅读:
    Linux配置NTP服务器,时间同步
    个人博客:有态度的HBase/Spark/BigData
    solr 6.2.1环境搭建
    大牛博客!Spark / Hadoop / Kafka / HBase / Storm
    hive 数据导出三种方式
    hive 分区表
    hive 创建orc表
    Tomcat中JVM内存溢出及合理配置及maxThreads如何配置(转)
    oracle 日期时间函数
    02: linux命令bak
  • 原文地址:https://www.cnblogs.com/ldq2016/p/7058127.html
Copyright © 2011-2022 走看看