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我试图将字符串写入内部存储器,然后读取它,但结果是一样的(老实说,这并不奇怪)…您能澄清一下本地存储字符串下的含义吗?您能给出任何字符串示例吗?当您将二进制数据转换为字符串时,它会更改数据(转换为有效字符,进行编码)。