Хранение базы данных картинок

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
Saint
Сообщения: 13
Зарегистрирован: 16 сен 2014, 07:01

Хранение базы данных картинок

Сообщение Saint » 19 сен 2014, 07:39

Привет! Скажу сразу, я учусь на ходу, но тема мобильных приложений меня интригует и изучение началось сразу "с места в карьер" с "боевым" чуть-чуть оплачиваемым, пусть и не сложным приложением. Оплата и сложность пока детские, но вот сроки вполне настоящие и работать приходится "не щадя живота своего" :D Поэтому буду благодарен за любую поддержку. Ситуация следующая: у меня приложение обновляет с сервера базу данных. Там надо распарсить json строку на значения полей карточек и картинки (в этой же строке в виде Base64). Базу скачать уже получилось (get запросом), картинки перекодировать и держать эту базу в памяти устройства в виде экземпляра класса. Соответственно, возник вопрос хранения. Нагуглил из этого урока, что, вероятно, удобнее всего карточки будет хранить в SQLite, а картинки во внутренней памяти. Однако если по SQLite есть приведенный урок, то по хранению во внутренней памяти картинок целый калейдоскоп похожих понятий, глаза разбегаются. Суть вопроса:
Имеется: Bitmap image, String str
-Как сохранить image на устройстве?
-Как сохранить в str адрес до image на устройстве?
-Как загрузить Bitmap в image по ссылке str?

p.s. Огромное простите, если тема уже поднималась на форуме :oops:

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Хранение базы данных картинок

Сообщение Foenix » 19 сен 2014, 07:48

посмотри библиотеки, которые это делают Picasso или Universal Image Downloader
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Хранение базы данных картинок

Сообщение KamiSempai » 19 сен 2014, 13:41

Foenix писал(а):посмотри библиотеки, которые это делают Picasso или Universal Image Downloader
Разве эти библиотеки позволяют получать картинки из Base64 в Json?

Изображение можно сохранить так:[syntax=java]try {
FileOutputStream out = new FileOutputStream(imageFilePath);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
} catch (Exception e) {
e.printStackTrace();
}[/syntax]imageFilePath - полный путь

Кстати, сервер кто делал?
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Saint
Сообщения: 13
Зарегистрирован: 16 сен 2014, 07:01

Re: Хранение базы данных картинок

Сообщение Saint » 22 сен 2014, 07:50

Спасибо, похоже на полезное, только что-то не находит потом файл, хотя не ругается никак казалось бы.
Сохраняю в конструкторе класса некоторый Bitmap, запоминаю адрес, но когда обращаюсь к нему, то ничего по этому адресу не находит. Точнее проверка на существование файла хорошо проходит (файл exist), а вот когда ставишь его в качестве картинки - остается пустота вместо картинки. С чем это может быть связано? Код в конструкторе:

Код: Выделить всё

try {
        OutputStream stream = this.context.openFileOutput("icon_"+String.valueOf(this.id),Context.MODE_PRIVATE);
        (BitmapFactory.decodeByteArray(byteArr, 0, byteArr.length)).compress(Bitmap.CompressFormat.PNG,90,stream);
        this.icon = "icon_"+String.valueOf(this.id);
        stream.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
код при вставке в картинку

Код: Выделить всё

mImageView.setImageBitmap(BitmapFactory.decodeFile(data.ads.get(1).icon));

Ответить