Я сделал таблицу с информацией о пользователе, уже сохраненной в ней. Когда пользователь регистрируется с идентификатором, все данные, такие как имя пользователя, курс, извлекаются из таблицы, если идентификатор совпадает. Теперь я хочу добавить изображения профиля в свою таблицу информации о пользователе. Почти все учебные пособия в Интернете посвящены сохранению фотографии с телефона в эту базу данных и ее извлечению. Но я не хочу этого. Я хотел бы добавить в таблицу разные изображения для каждого пользователя, т.е. оно должно быть специфичным для пользователя. Теперь я знаю, что используется тип данных BLOB, и изображения должны быть преобразованы в байты. Но я не знаю, где я должен хранить изображения, будь то в моем телефоне или в моей папке res. Или, может быть, хранить его в Интернете. Я смущен. Я должен отметить, что это не идеальное приложение, это просто модель.
Как вставить собственное изображение в таблицу SQLite?
Ответы (2)
Одним из наиболее важных факторов, который следует учитывать, является размер изображений. Если размер, вероятно, превысит, скажем, 200 КБ, то возрастает риск возникновения проблем не с сохранением изображения в базе данных, а с его извлечением.
Без написания вашей собственной альтернативы CursorWindow тогда CursorWindow (буфер для хранения подгруппы строк в курсоре) ограничен размером 2M (в более поздних версиях в некоторых, я полагаю, это был 1M). Если размер изображения приближается к 2 МБ, его невозможно извлечь (даже без учета места для других столбцов).
Таким образом, обычно рекомендуемый подход заключается в том, чтобы не хранить изображения, а хранить средства извлечения изображения из хранилища файлов в другом месте (вы упомянули папку res, что может быть хорошо, но вам может потребоваться учитывать размер APK) , вы можете сохранить путь к файлу в базе данных.
Существует более полный ответ, который охватывает вышеизложенное, включая хранение небольших изображений в БД и более крупных изображений в другом месте (папка активов) здесь
Для всех, у кого есть такой же вопрос, как у меня, я нашел этот учебник является самым простым способом хранения изображений и их извлечения. Он использует внешнюю базу данных sqlite для хранения изображений и информации и доступа к ней на странице Java для отображения, что мне показалось довольно простым.