Страница 1 из 1
Как созранить обьект, у окторого есть картинка ?
Добавлено: 22 фев 2013, 01:53
Elek
Добрый день, хочу попросить совета .
Хочу сохранить обьект, который описывал бы фильм.
У которого было бы, например поле для хранения названия, описания и картинка-постер самого фильма.
Как правильно это сделать ?
Как записать такой обьект в базу данных ?
Где лучше хранить картинку в базе данных или в файловой системе ?
Если в файловой системе, то как связывать её и родительский обьект ?
Может хранить ссылку на картинку в базе данных ?
В общем прошу наставить на путь истинный и обьяснить куда копать, спасибо

.
Re: Как созранить обьект, у окторого есть картинка ?
Добавлено: 22 фев 2013, 05:06
neoksi
Elek писал(а):Как записать такой обьект в базу данных ?
Разбиваешь такой объект на элементы, к примеру:
1) _id записи;
2) Название фильма;
3) Описание фильма;
4) Рейтинг;
5) id картинки в файловой системе;
6) и т.д.
И создаешь таблицу с нужными полями.
Elek писал(а):Где лучше хранить картинку в базе данных или в файловой системе ?
Картинку можно хранить как BLOB данные в БД, но не советую, если к ним неправильно обратиться, повесишь все. Идеальным вариантом считается сохранять картинку в ФС, а в БД хранить ссылку на картинку.
Elek писал(а):Если в файловой системе, то как связывать её и родительский объект ?
В БД хранишь ссылку на картинку в соответствующей записи, формат ссылки уже на твоё усмотрение, это может быть как имя фйла, так и полный URI путь к файлу. Подстановка делается уже в адаптере, подготавливающем данные для отображения в приложении.
Elek писал(а):Может хранить ссылку на картинку в базе данных ?
Это самый верный путь.
Elek писал(а):В общем прошу наставить на путь истинный и обьяснить куда копать, спасибо

.
Наставляю, иди и больше не греши

Re: Как созранить обьект, у окторого есть картинка ?
Добавлено: 24 фев 2013, 00:20
Elek
neoksi
Спасибо за развернутый ответ.
Еще два вопроса насчет хранения картинок:
Куда их лучше складировать?
Есть папка assets и res. Я положил несколько штук в папку res/drawable, для тестов.
Если захочу добавлять картинки в runtime, нужно складировать в папке assets ?
Ну и второй вопрос, как работает uri в андроиде, как правильно записывать руть к файлу ?
Заранее благодарен

.
Re: Как созранить обьект, у окторого есть картинка ?
Добавлено: 03 мар 2013, 16:38
Elek
В общем сделал обьект, который хранит фильм:
Код: Выделить всё
public class Movie {
public long _id;
public String subject;
public String body;
public String pictureUrlString;
@Override
public String toString() {
return "Movie [_id=" + _id + ", subject=" + subject + ", body=" + body
+ ", pictureUrlString=" + pictureUrlString + "]";
}
}
String pictureUrlString хранит путь к имени файла в папке assets, открываю его вот так :
Код: Выделить всё
private Drawable getDrawableFromAsset(String fileName) {
Drawable drawable = null;
try {
// Open Input Stream for required file, from asset folder
InputStream inputStream = getAssets().open(fileName);
// Create Drawable from InputStream
drawable = Drawable.createFromStream(inputStream, null);
} catch (Exception e) {
Log.e(MainActivity.MOVIES_ADAPTER_TAG, "Error: " + e.getMessage());
}
return drawable;
}
Вопрос, как пользователь может добавлять свои картинки в папку assets ?
То есть, если он захочет поменять имеющуюся картинку или добавить новый фильм ?
Как, например, добавить файл в папку assets ?
Или я что-то не понял и так делать нельзя ?
И если ответ положительный, то как надо делать

?
Спасибо.
Re: Как созранить обьект, у окторого есть картинка ?
Добавлено: 03 мар 2013, 21:16
rezak90
с асета вы только тяните данные которые ещё заложили в проекте... сделайте темповую папку и там храните свои картинки