Как скачивать и сохранять изображения в память телефона?

259
20 сентября 2017, 10:55

Моя задача: спарсить JSON из интернета, положить их в SQLite (это я сделал), но я сохранил только пути к изображению, но не сами изображения.
Мне нужно скачать изображения из интернета, и при последующем запуске приложения загружать все эти картинки из памяти телефона. Как это сделать новичку? Может быть есть какие-то готовые библиотеки для такого рода задач? Подскажите пожалуйста
Я использую: Retrofit 2, Active Android, SQlite.

Answer 1

Да, есть библиотеки и да, лучше всего использовать их. Вот пример предварительной загрузки изображений в кэш по ссылке либой Glide:

Glide.with(context)
        .load("IMAGE_URL")
        .diskCacheStrategy(DiskCacheStrategy.SOURCE)
        .listener(new RequestListener<String, GlideDrawable>() {
            @Override
            public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
                Log.e("TAG", "error while preload image by Glide");
                return false;
            }
            @Override
            public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                  Log.d("onResourceReady: " + resource.getIntrinsicWidth() + "/" + resource.getIntrinsicHeight());
                return false;
            }
        })
        .preload();

После этого отображать её так (изображение возьмётся из кэша):

Glide.with(context)
        .load("IMAGE_URL")
        .into(imageView);
Answer 2

Как это сделать новичку? Может быть есть какие-то готовые библиотеки для такого рода задач?

Попробуйте использовать библиотеку Glide для загрузки и кеширования изображений

READ ALSO
Как JSF (Primefaces) вызвать диалог по нажатию на кнопку

Как JSF (Primefaces) вызвать диалог по нажатию на кнопку

Не могу разобраться, как вызвать диалог, подобный этому https://wwwprimefaces

328
XML (FXML) и Java [требует правки]

XML (FXML) и Java [требует правки]

Довольно часто вижу в различных статьях использование XML вместе с JavaКакую роль он выполняет и как с ним взаимодействовать?

357
На верном ли я пути к Android Junior&#39;у? [требует правки]

На верном ли я пути к Android Junior'у? [требует правки]

Пример последнего приложения: тык

302
JFrame , не работает KeyListener [требует правки]

JFrame , не работает KeyListener [требует правки]

Создаю приложение, являющийся игройИмеется класс наследованный от JFrame и реализующий интерфейс KeyListener а в конструкторе добавлен слушатель...

356