2017-01-09 81 views
0

我正在从Web服务调用中获取base64字符串。然后我试图把这个字符串放到列表视图的图像视图中。我在byte []行上得到一个空点异常。我不知道我在做什么错误,或者为什么我在调试时得到空值,我能够获取数组并逐步完成。将Base64字符串解析为图像时的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); 

我不知道为什么它的空当将要通过一个数组和步骤。我已经在浏览器中的转换器中尝试了这个Base64字符串,它的工作原理。

我使用peepWithPic.getThumbnailData()获取Base64字符串;但是然后在bytep []中得到空值。

如果我把那个base64字符串并插入到字符串peepPicData =“theactualBase64string”我一遍又一遍地得到图片。为什么这不能从getter中获取,因为它已经在这个调用之前被设置了?

回答

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); 
      } 
相关问题