Я хочу отображать изображения, хранящиеся в моей базе данных, однако моя программа бросает исключение (CursorIndexOutOfBoundsException: запрошенный индекс -1 с размером 100). Я использую this, и в этом уроке мне удалось вставить изображения в базу данных, но проблема их устранения. Пытаясь найти ответы от google и StackOverflow, я также сталкиваюсь с следующими вопросами. Qustion1 Qustion2. Однако эти вопросы не помогают моему делу. Любая помощь была бы признательна.Как отображать изображения из базы данных
Ниже приведен мой код.
db = helper.getWritableDatabase();
//select the data
//while(cursor.moveToFirst());
cursor = db.query(DBHelper.TABLE, new String[] {DBHelper.C_PHOTOS },
null, null, null, null, null);
//get it as a ByteArray
byte[] imageByteArray=cursor.getBlob(1);
//the cursor is not needed anymore
cursor.close();
//convert it back to an image
ByteArrayInputStream imageStream = new ByteArrayInputStream(imageByteArray);
Bitmap theImage = BitmapFactory.decodeStream(imageStream);
Вот Clase, который вставляет изображения
URL url = new URL("myurl");
URLConnection ucon = url.openConnection();
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is,128);
ByteArrayBuffer baf = new ByteArrayBuffer(128);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
ContentValues v = new ContentValues();
v.put(DBHelper.C_PHOTOS,baf.toByteArray());
v.put(DBHelper.C_PHOTOS, photoThumbnailUrl);
db.insert(DBHelper.TABLE, null, v);
Заранее спасибо
Возможно, вам лучше посмотреть на сохранение только пути изображения в базе данных. Затем сохраните изображение в папке с изображениями. – NeverPhased
Привет, эти изображения поступают из Интернета, а не в любую папку. – SomCollection