【发布时间】:2015-04-29 04:50:02
【问题描述】:
有时,当我下载图像时,其中一些会出现灰线,如下面的示例图像所示:
这往往只发生在糟糕的网络条件下。
我的图像解码代码本质上是 UIL 的修改版本:
Bitmap decodedBitmap = BitmapFactory.decodeStream(stream, null, decodingOptions);
其中流只是远程文件的 InputStream
现在我在 Google Play 音乐应用上看到了这种行为,这让我怀疑这是否是 BitmapFactory 的问题。 到目前为止,我提出的唯一解决方案可能是进行校验和比较,以确保下载了整个图像。
编辑:
HttpURLConnection conn = getConnection(path);
InputStream inputStream = conn.getInputStream()
stream = new ContentLengthInputStream(new BufferedInputStream(download, BUFFER_SIZE), conn.getContentLength())
【问题讨论】:
-
我不认为它与 BitmapFactory 相关,因为它只是解码流,更像是蒸汽没有被完全填满,是的,做一个 MD5 校验和就足够了,然后你可以读取文件并获取它的 Uri。
-
@Raykud 我对校验和解决方案犹豫不决的唯一原因是它增加了每个图像下载的开销。如果有帮助,我已经发布了用于获取 InputStream 的代码
标签: android bitmap bitmapfactory corrupt-data