Как хранить и получать изображения в базе данных sqlite в Android? - PullRequest
1 голос
/ 13 ноября 2011

Я работаю над приложением для викторины , и мне нужно отобразить вопросы вместе с изображениями сохранил вопросы в базе данных sqlite и , отображая их в Android .Но я не знаю, как хранить изображения в sqlite db и отображать их.Я просмотрел очень много ссылок и нашел способ отображения изображения с удаленной БД.Но мне нужно отображать изображения с локального sqlite db .Как мне это сделать.Пожалуйста, помогите мне в этом.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 13 ноября 2011

Обычно вы не сохраняете двоичные данные в базе данных. Это считается дурным тоном и может заставить запросы к базе данных занимать очень много времени из-за способа хранения данных на диске. Что вы должны сделать, это сохранить путь к файлу изображения в вашей базе данных и сохранить изображение на SD-карте.

Без написания огромного количества кода для вас, вот пример высокого уровня. Сначала создайте таблицу для хранения изображения с помощью следующего вызова sql:

CREATE TABLE images (_id INTEGER PRIMARY KEY AUTOICREMENT, file_path TEXT, name TEXT);

Когда приходит время вставить изображение, вы должны сделать две вещи. Сначала запишите изображение на SD-карту. Следуйте инструкциям здесь, чтобы сделать это. После того, как вы выписали его и получили для него имя файла, вы просто делаете запрос sql следующим образом:

INSERT INTO images (file_path, name) VALUES ("your file path", "name of image");

Всякий раз, когда вам действительно нужно отобразить изображение, вы просто читаете файл, указанный в file_path, с вашей SD-карты.

0 голосов
/ 13 ноября 2011

В духе реального ответа на заданный вами вопрос, если вы ДЕЙСТВИТЕЛЬНО хотите записать изображение в БД, вы бы добавили поле BLOB и сохранили в нем данные, но нет причин делать это ... просто следуйте Kurtis Совет Нусбаума и сохраните изображение в виде файла со ссылкой в ​​строке базы данных о том, где оно находится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...