将字符串转换为位图

时间:2014-08-22 13:25:06

标签: android string bitmap bytearray

我尝试将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);
...

1 个答案:

答案 0 :(得分:1)

正如评论中所提到的,当将二进制数据转换为字符串时,它会在EntityUtils.toString(resEntity)

更改数据(到有效字符,通过编码)

感谢@yoah

将代码更改为

byte[] img = EntityUtils.toByteArray(resEntity);

然后将此字节数组传递给BitmapFactory

Bitmap bitmap = BitmapFactory.decodeByteArray(img, 0, img.length);

图像显示正确。

因此,结论是使用字节数组操作比使用附件字符串更好。