Java教程

Android ImageView加载base64图片 java.lang.IllegalArgumentException: bad base-64

本文主要是介绍Android ImageView加载base64图片 java.lang.IllegalArgumentException: bad base-64,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

加载方法

String base64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABXCAYAAACTFMIVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAA..."
byte[] decodedString = Base64.decode(base64, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
imageView.setImageBitmap(decodedByte);

这样的会报如下错误

 java.lang.IllegalArgumentException: bad base-64
        at android.util.Base64.decode(Base64.java:163)
        at android.util.Base64.decode(Base64.java:138)
        at android.util.Base64.decode(Base64.java:120)

这是因为前面的前缀

data:image/png;base64, 

是不属于base64的编码里的一部分

完整的DataURL语法:DataURL= data:mediatype;base64,<Base64编码的数据>。

解决办法

将DataURL前面的 data:image/png;base64, 删除

正确的代码

String base64 = "iVBORw0KGgoAAAANSUhEUgAAAFAAAABXCAYAAACTFMIVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAA..."
byte[] decodedString = Base64.decode(base64, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
imageView.setImageBitmap(decodedByte);
这篇关于Android ImageView加载base64图片 java.lang.IllegalArgumentException: bad base-64的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!