0

在 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
4

1 回答 1

1

Drawable.createFromStream()并不是真的要通过远程 HTTP 连接构建图像。实际上,如果您查看此方法的源代码,它最终会调用BitmapFactory.decodeResourceStream(),它用于从应用程序的内部资源创建图像。

我建议您尝试BitmapFactory直接使用方法来解码来自网络的图像。一些选项可能是decodeStream(),但有时网络可能会出现问题,保持缓冲区足够满以使用此方法。您还可以自己将流中的字节读入 abyte[]并使用decodeByteArray(). 使用这种方法可能会有更好的运气。

于 2012-12-02T19:39:14.090 回答