我尝试将String
转换为Bitmap
对象,然后将其放在ImageView
上。从Web下载String
值,该值不为空。实际上它是一个jpeg文件,我可以通过浏览器下载和打开。
我尝试使用BitmapFactory.decodeByteArray
方法但获得了--- SkImageDecoder::Factory returned null
消息。
try{
byte[] encodeByte = encodedString.getBytes();
Bitmap bitmap = BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
return bitmap;
} catch(Exception e){
e.printStackTrace();
return null;
}
encodedString
实际上是我之前下载的字符串:
...
HttpEntity resEntity = response.getEntity();
String encodedString = EntityUtils.toString(resEntity);
...
答案 0 :(得分:1)
正如评论中所提到的,当将二进制数据转换为字符串时,它会在EntityUtils.toString(resEntity)
感谢@yoah
将代码更改为
byte[] img = EntityUtils.toByteArray(resEntity);
然后将此字节数组传递给BitmapFactory
Bitmap bitmap = BitmapFactory.decodeByteArray(img, 0, img.length);
图像显示正确。
因此,结论是使用字节数组操作比使用附件字符串更好。