我在Android上使用HttpClient下载图片时遇到问题。看起来像是从服务器推送图像,例如"可下载的文件"这是行不通的。另一方面,在浏览器中显示的图像下载没有任何问题。 它看起来像提供的文件的标题和mimetype的问题,或类似的东西..我认为它是在服务器上启用gzip的问题,但经过几次实验它绝对不是这样。 有人知道如何解决这个问题吗?感谢
以下是我的代码的简短摘录
HttpClient httpClient = new DefaultHttpClient();
HttpResponse response = httpClient.execute(request);
HttpEntity entity = response.getEntity();
inputStream = entity.getContent();
Drawable image = Drawable.createFromStream(is, "src"); //the image is null in certain scenarios
答案 0 :(得分:1)
Drawable.createFromStream()
并不意味着通过远程HTTP连接构建图像。事实上,如果你查看这个方法的来源,它最终会调用BitmapFactory.decodeResourceStream()
,用于从应用程序的内部资源创建图像。
我建议您尝试直接使用BitmapFactory
上的方法来解码来自网络的图像。一些选项可能是decodeStream()
,但有时网络可能会出现问题,使缓冲区足够用于此方法。您还可以自己将流中的字节读取到byte[]
并使用decodeByteArray()
。你可能会有更好的运气。