將byte[]數組數據轉換為圖片用於預覽顯示


假如服務器返回給你的圖片信息是byte[] 然后你需要將起轉換成圖片顯示到你的view中去:

按以下的步驟

1.將獲取的byte數組保存 假如為temp[];

2.將temp[]轉化為bitmap,你可以使用下面的這個方法 :

/**
* 將字節數組轉換為ImageView可調用的Bitmap對象
* @param bytes
* @param opts 轉換屬性設置
* @return
**/

public static Bitmap getPicFromBytes(byte[] bytes, BitmapFactory.Options opts) {



	     if (bytes != null)

	        if (opts != null) 
	             return BitmapFactory.decodeByteArray(bytes, 0, bytes.length, opts); 
	        else

	            return BitmapFactory.decodeByteArray(bytes, 0, bytes.length); 
	     return null;

	}

  

  

 

  其中的這個Options是BitmapFactory.Options 大致功能就是設置你轉換成bitmap的屬性(大小 寬 高 編碼格式 預覽 等),為了防止圖片過大導致oom我們可以獲取預覽就可以了:

  

BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inSampleSize = 2;

 3.這樣你把這個opts傳入上面的函數中,我們獲取的bitmap 就是原圖的1/4大小了。如果你還需要縮放成固定的寬高來使用 下面提供一個縮放方法:

/** 
     * @param 圖片縮放 
     * @param bitmap 對象 
     * @param w 要縮放的寬度 
     * @param h 要縮放的高度 
     * @return newBmp 新 Bitmap對象 
     */  	

public static Bitmap zoomBitmap(Bitmap bitmap, int w, int h){  
        int width = bitmap.getWidth();  
        int height = bitmap.getHeight();  
        Matrix matrix = new Matrix();  
        float scaleWidth = ((float) w / width);  
        float scaleHeight = ((float) h / height);  
        matrix.postScale(scaleWidth, scaleHeight);  
        Bitmap newBmp = Bitmap.createBitmap(bitmap, 0, 0, width, height,  
                matrix, true);  
        return newBmp;  
    }  

  這樣就能獲取到你想要的高度和寬度的圖片 是不是很方便呢

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM