Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将字符串转换为位图_Android_String_Bitmap_Bytearray - Fatal编程技术网

Android 将字符串转换为位图

Android 将字符串转换为位图,android,string,bitmap,bytearray,Android,String,Bitmap,Bytearray,我正在尝试将字符串转换为位图对象,然后将其置于图像视图上字符串值是从web下载的,不为空。实际上,它是一个jpeg文件,我可以下载并通过浏览器打开 我试图使用BitmapFactory.decodeByteArray方法,但得到---SkImageDecoder::Factory返回空的消息 try{ byte[] encodeByte = encodedString.getBytes(); Bitmap bitmap = BitmapFactory.decodeByte

我正在尝试将
字符串
转换为
位图
对象,然后将其置于
图像视图
上<代码>字符串值是从web下载的,不为空。实际上,它是一个jpeg文件,我可以下载并通过浏览器打开

我试图使用
BitmapFactory.decodeByteArray
方法,但得到
---SkImageDecoder::Factory返回空的消息

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);
...

如注释中所述,当将二进制数据转换为字符串时,它会在
EntityUtils.toString(resEntity)

感谢@yoah

将代码更改为

byte[] img = EntityUtils.toByteArray(resEntity);
然后将这个字节数组传递到BitmapFactory

Bitmap bitmap = BitmapFactory.decodeByteArray(img, 0, img.length);
图像显示正确


因此,结论是使用字节数组比使用辅助字符串更好。

尝试使用本地存储的相同字符串,first@Alex你的意思是在文件中写入一个字符串,然后读取它吗?@Alex我试图将字符串写入内部存储器,然后读取它,但结果是一样的(老实说,这并不奇怪)…您能澄清一下本地存储字符串下的含义吗?您能给出任何字符串示例吗?当您将二进制数据转换为字符串时,它会更改数据(转换为有效字符,进行编码)。