Я использую Glide для загрузки изображений в свое приложение для Android:
Glide.with(context) .load("http://www.example.com/whatever/icon.png") .into(imageView);
Я хотел бы объединить некоторые изображения в APK-файл моего приложения, чтобы убедиться, что они всегда доступны, даже если устройство находится в автономном режиме. Я все еще хотел бы использовать Glide, чтобы извлечь выгоду из таких функций, как кэширование в памяти изображений с измененным размером, загрузка и масштабирование в фоновом потоке, а также чтобы интерфейс для отображения изображений оставался согласованным.
Каждое изображение, которое мне нужно загрузить таким образом, определяется URL-адресом. Если есть локальная версия (имя локального файла создается с использованием части URL-адреса [например, замена "http://www.example.com/" с "file:///android_asset/bundled_images/whatever/" ] в строке URL), я хотел бы использовать его. Если нет, изображение необходимо загрузить с фактического URL-адреса.
Вот пример:
У меня есть изображение по адресу http://www.example.com/whatever/icon.png Я включу этот образ в apk под:
/assets/bundled_images/что угодно/icon.png
Правило будет следующим:
Если файл изображения существует в локальных активах, используйте этот файл. Если образ не существует в локальных ресурсах, используйте удаленный файл.
Всякий раз, когда я запрашиваю загрузку изображения в представление изображения, я хотел бы иметь возможность использовать только полный URL-адрес (http://www.example.com/whatever/icon.png), и мой загрузчик изображений должен автоматически сначала проверить наличие локальной копии.
Могу ли я сделать что-то подобное с любой функциональностью Glide? Да, я мог бы, конечно, проверить наличие файла перед вызовом glide, но это кажется достаточно распространенным вариантом использования, что Glide может/должен иметь функцию для этого. Также было бы неплохо сделать проверку существования файлов в фоновом режиме.