android—Drawable、Bitmap、byte[]…

来源:互联网 发布:中英联合声明 知乎 编辑:程序博客网 时间:2024/04/29 17:59
1、Drawable → Bitmap 的简单方法
((BitmapDrawable)res.getDrawable(R.drawable.youricon)).getBitmap();


2、Drawable → Bitmap
Java代码
public static Bitmap drawableToBitmap(Drawable drawable){  
        
       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);  
       //canvas.setBitmap(bitmap);  
       drawable.setBounds(0,0, drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());  
       drawable.draw(canvas);  
       returnbitmap;  
 


3.Bitmap→Drawable   的简单方法
BitmapDrawable bitmapDrawable =(BitmapDrawable)bitmap;    
Drawable drawable = (Drawable)bitmapDrawable;    
   
   
Bitmap bitmap = new Bitmap (...);    
Drawable drawable = new BitmapDrawable(bitmap);  


3、从资源中获取Bitmap
Java代码
Resourcesres=getResources();  
  
Bitmap bmp=BitmapFactory.decodeResource(res,R.drawable.pic);  





4、Bitmap → byte[]
Java代码
private byte[] Bitmap2Bytes(Bitmapbm){  
    ByteArrayOutputStream baos =newByteArrayOutputStream();   
   bm.compress(Bitmap.CompressFormat.PNG, 100,baos);   
    returnbaos.toByteArray();  
 


5、 byte[] → Bitmap
Java代码
(方法一)private Bitmap Bytes2Bimap(byte[]b){  
         if(b.length!=0){  
             returnBitmapFactory.decodeByteArray(b, 0,b.length);  
          
          else{  
             returnnull;  
          
     }
(方法二)
          byte[] smByte =cursor.getBlob(cursor.getColumnIndex("codeImg"));
         ByteArrayInputStream is = new ByteArrayInputStream(smByte);
          bitmap = newBitmapDrawable(is).getBitmap();

引用地址:http://zhangkun716717-126-com.iteye.com/blog/1147957  
          
0 0
原创粉丝点击