我从Web服务调用获取base64字符串。然后我尝试将该字符串放入listview中的图像视图中。我在行byte []上得到一个零点异常。我不确定我做错了什么或者为什么我在调试时得到null我能够获得数组并逐步完成。
String peepPicData = peepWithPic.getThumbnailData();
byte[] imageAsBytes = Base64.decode(peepPicData.getBytes(), Base64.DEFAULT); //the null is here
Bitmap parsedImage = BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length);
holder.mPeepPic.setImageBitmap(parsedImage);
我不确定它为什么在转换为数组并逐步执行时为null。我在浏览器的转换器中尝试过这个Base64字符串,它可以工作。
我正在使用peepWithPic.getThumbnailData()获取Base64字符串;但是在bytep []中得到null。
如果我接受base64字符串并将其插入字符串peepPicData =" theactualBase64string"我一遍又一遍地拍照。为什么这不能从getter中获取它,因为它已经在调用之前设置了?
答案 0 :(得分:0)
我不得不添加一个空检查,因为一些peepWithPic没有实际上有图片。这是更新的代码
if (peepWithPic.getThumbnailData() != null) {
String peepPicData = peepWithPic.getThumbnailData();
byte[] imageAsBytes = Base64.decode(peepPicData.getBytes(), Base64.DEFAULT);
Bitmap parsedImage = BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length);
holder.mPeepPic.setImageBitmap(parsedImage);
}