2014-04-01 80 views
3

我的應用程序從DB中逐一讀取幾個BASE64編碼圖像。但對於一些圖像(< 0.1%),它無法加載。方法BitmapFactory.decodeByteArray()返回null,這意味着它的無效格式。但是當我用硬編碼的罪魁禍首創建了一個單獨的應用程序時,它就起作用了。現在我有一個大的應用程序,其中相同的圖像不起作用,並在我的測試應用程序工作。誰能告訴我爲什麼在上帝的名下發生這種事?這是我的代碼:爲什麼BitmapFactory.decodeByteArray()返回null?

byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT); 
Bitmap setBMPPath = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
if (setBMPPath != null) { 
    qImage.setImageBitmap(setBMPPath); 
} 

是否有任何其他方法,我可以用來將字節數組轉換爲位圖?

回答

1

你可以嘗試添加Base64.NO_WRAP:

byte[] decodeResponse = Base64.decode(base64Image, Base64.DEFAULT | Base64.NO_WRAP); 
Bitmap bitmap = BitmapFactory.decodeByteArray(decodeResponse, 0, decodeResponse.length); 

希望這可以幫助別人。