我在我的Android应用程序中收到Base64编码的字符串,并将其转换为位图,如下所示:

final String base64Image = getPicResponse.getString(GETPIC_PARAM_BASE64IMAGE);

final byte[] decodedString = Base64.decode(base64Image, Base64.DEFAULT);

Bitmap decodedByteBitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);

有时 decodedByteBitmap 是有效的位图,有时它是null . 在尝试查找模式时,我打印以下内容:

DataUtils.log("In GcmIntentService - Received image length is: " + base64Image.length());

当使用2个测试图像时,我注意到当字符串较长时它会失败 . 例如,它将用于字符串长度465,072,但是对于字符串长度672,412将失败 .

BitmapFactory.decodeByteArray 是否有输入大小限制我不知道?如果是这样,我还有什么方法可以将Base64编码的位图转换为位图?

文档(http://developer.android.com/reference/android/graphics/BitmapFactory.html)只提及它返回 null ,如果它可以't be decoded, but don' t给出任何其他信息 .

谢谢