我有一个非常有趣的问题要解决:
我得到一个静态的谷歌地图图像,带有这样的URL。
我尝试了几种方法来获取此信息:将“远程资源”作为 ByteArrayOutputStream 获取,将图像存储在模拟器的 SD 中,等等……但每次我得到一个IlegalArgumentException。
我总是得到一个 200 http 响应和正确的 MIME 类型(“image/png”),但无论哪种方式:获取图像并将其转换为位图,或将图像存储在 SD 中并稍后读取;我得到相同的结果......文件总是损坏。
我真的相信它是一个编码问题,或者阅读方法(类似于这个):
public static Bitmap downloadImage(InputStream inStream){
byte[] buffer = new byte[256];
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while (inStream.read(buffer) != -1){
baos.write(buffer);
}
baos.flush();
baos.close();
byte[] imageData = baos.toByteArray();
Bitmap bi = Bitmap.createBitmapFromBytes(imageData, 0, imageData.length, 1);
//Bitmap bi = Bitmap.createBitmapFromBytes(imageData, 0, -1, 1);
return bi;
}
唯一想到的是 imageData.lenght (在响应中,内容长度为: 6005 ),但我真的无法弄清楚这一点。任何帮助都非常受欢迎......