Я загружаю изображения из URL и сохраняю их в таблице базы данных SQLite. Изображения являются профилями изображений для пользователей. Я храню изображение профиля и информацию о пользователе в одной строке. Одна строка на пользователя.
Это в основном работает. Почти все изображения загружаются в мой список. Тем не менее, у меня есть 2-4 из 300 пользователей, которые отображают с черным изображением. Я подтвердил, что пользователи с черными изображениями имеют действительное изображение в URL, загрузив изображение через мой веб-браузер.
Кто-нибудь понял, почему эти несколько пользователей показывают черные изображения? Я не вижу никаких исключений.
Вот мой код:
ByteArrayBuffer baf = new ByteArrayBuffer(50);
URL url = new URL(imageURL);
URLConnection ucon = url.openConnection();
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
...
// Then the byte[] is stored in a SQLite blob field.
baf.toByteArray()
...
// Then I load the blob field like this into my view.
byte[] bytes = cursor.getBlob(cursor.getColumnIndex(DbHelper.PROFILE_IMAGE_COLUMN));
if (bytes != null) {
ImageView iv = (ImageView) v.findViewById(R.id.profile_icon);
iv.setImageBitmap(BitmapFactory.decodeByteArray(bytes, 0, bytes.length));
}