Я работаю над приложением, которое будет получать данные и изображения с webservice
и хранить их на устройстве в автономном режиме. В то же время приложение будет иметь некоторые данные, хранящиеся в sqlite db
, а некоторые изображения - данные по умолчанию.Online/Offline Стратегия управления изображениями
Вот поток приложения:
- Когда приложение открывает будет захватывать данные из
Sqlite Db
и изображения путей изображений, хранящихся в устройстве, и отображать их. - Кроме этого, если есть подключение к Интернету, данные и изображения из
webservice
будет потребляться и копируется вSqlite DB(data)
и кdevice(images)
быть позже автономный доступ к
Вот вопрос :
Что является лучшей стратегией для этого (обратите внимание, что я хочу также предотвратите изображения, показанные в галерее устройства. Они смогут получить доступ к только из приложения)?
- Если я хранить стандартные изображения во-первых, в
Assets Folder
и скопировать их в внешнего каталога на первом oppening. И для оффлайн использование изображений с webservice, скачать и сохранить их в в том же каталоге? - Должен ли я хранить локальные изображения в чертежах и загружать изображения в внешний каталог устройства?
- Если я хранить все изображения в SqliteDb, как двоичные данные (которые я не предпочитают из-за производительности)
принять также во внимание, что я хочу, чтобы хранить несколько изображений для разных размеров устройств. Так что на первое отверстие я проверить устройство, с которого drawable folder (xxhdpi, xhdpi, hdpi, mdpi)
он принимает изображения как так:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
switch(metrics.densityDpi){
case DisplayMetrics.DENSITY_MEDIUM:
break;
case DisplayMetrics.DENSITY_HIGH:
break;
case DisplayMetrics.DENSITY_XHIGH:
break;
case DisplayMetrics.DENSITY_XXHIGH:
break;
}
магазин в какую папке он идет на SharedPreferences
так, когда я загрузить изображения с сервиса, он будет идти к специфическому папка с specfic изображения размером из webservice
и грейферов их
Что такое лучшая и простая стратегия управления образами в этом случае?
[Примечание: Я не хочу использовать google extension files
как данные и изображения могут быть udated часто]
В Дело в том, что в то же время я получу другие данные как 'json', где также будут отображаться названия изображений,« вставлять »их в' SqliteDB' устройства, а затем загружать изображения и хранить их на устройстве. Приложение не должно быть пустым данных. Во-первых, БД будет скопирована на устройство из папки с ресурсами, и некоторые изображения также должны быть там. Из вашего объяснения я понимаю, что для использования в автономном режиме я должен использовать механизм chaching, но будет проблемой, если у меня будет много изображений? – hrskrs
@hrskrs Нет, это не должно создавать никаких проблем. Afaik, как это приложение-приложение делает эту вещь –
с 'picasso', если я не ошибаюсь, вы можете скачать изображение за раз. Он не поддерживает несколько изображений. Или, может быть, с циклом это можно решить. Существует [Универсальный загрузчик изображений] (https://github.com/nostra13/Android-Universal-Image-Loader), который из моих исследований выглядит лучше всего для моего случая. И я боюсь, что если пользователь очистит кеш. Данные будут оставлены на SqliteDB, но изображения не будут доступны, я прочитал, что изображения должны храниться во внешнем каталоге при загрузке – hrskrs