раз в то время, когда я загрузка изображений, некоторые из них будут появляться с серыми линиями, как показано в образце изображения ниже: Поврежденные изображения Из BitmapFactory
Это имеет тенденцию происходить исключительно на плохих условиях сети.
Мой код для декодирования изображений по существу Modded версии, что от ИЮОЖА:
Bitmap decodedBitmap = BitmapFactory.decodeStream(stream, null, decodingOptions);
где поток просто InputStream в удаленный файл
Теперь я видел такое поведение на Google Play Music, что заставляет меня задаться вопросом, является ли проблема с BitmapFactory. Единственное решение, которое я придумал до сих пор, - это, возможно, сравнение контрольной суммы, чтобы убедиться, что все изображение было загружено.
Edit:
HttpURLConnection conn = getConnection(path);
InputStream inputStream = conn.getInputStream()
stream = new ContentLengthInputStream(new BufferedInputStream(download, BUFFER_SIZE), conn.getContentLength())
Я не думаю, что его отношение к BitmapFactory в качестве единственного декодирования поток, это было бы больше похоже на то, что пар не был полностью заполнен, и да, выполнить контрольную сумму MD5 было бы достаточно, и тогда вы можете просто прочитать файл и получить Uri для него. – Raykud
@Raykud Единственная причина, по которой я не решаюсь решить проблему с контрольной суммой, заключается в том, что она добавляет накладные расходы на каждую загрузку одного изображения. Я опубликовал код, который я использую, чтобы получить InputStream, если это поможет – nyx