Я мог бы использовать Glide для загрузки изображений с моего локального веб-сервера с помощью следующего кода:
Glide.with(this)
.load(SERVER_HOST_ADDRESS + userID + ".jpg")
.into((ImageView) mBinding.getRoot().findViewById(R.id.userImage));
Проблема в том, что с помощью этого метода я ограничен доступом только к .jpg
расширениям, когда иногда пользователь может выбрать загрузку другого типа изображения.
Есть ли способ для Glide обрабатывать загрузку изображения с URL-адреса, но без расширений?
Создание итератора было бы хорошо, но может быть ненужным.
Is there a way for Glide to handle loading an image from a URL, but without the extensions?
Да, хотя ваш веб-сервер может не поддерживать его.
Моя интерпретация заключается в том, что вы хотите:
.load(SERVER_HOST_ADDRESS + userID)
Если ваш веб-сервер передает изображение по этому URL-адресу с допустимым типом MIME изображения, Glide обработает его. Сам Glide не заботится о расширениях файлов — ему нужен действительный URL-адрес, который предоставляет допустимый тип MIME изображения.
Однако я предполагаю, что ваш сервер вернет ошибку 404 для этого URL-адреса, потому что сервер ожидает, что расширение файла совпадет с файлом на сервере.
Варианты решения этой проблемы включают:
Научите сервер, как обрабатывать URL-адрес без расширения
Используйте согласованный тип изображения (например, пусть сервер преобразует все в JPEG)
Имейте некоторые метаданные, сообщающие вам, какой URL-адрес загружать (например, вызов веб-службы для получения сведений о пользователе имеет свойство JSON, которое предоставляет URL-адрес изображения).
Сделайте то, что вы предложили, и просто переберите различные возможности и посмотрите, работает ли одна из них.
Не помечайте вопросы тегом android-studio только потому, что вы его используете: тег Только должен использоваться, когда у вас есть вопросы о самой IDE, а не о коде, который вы пишете (или хотите написать) в ней. См. когда уместно удалить тег IDE. Вместо этого используйте [android] или другие соответствующие теги. Кроме того, не используйте тег glide для вопросов о библиотеке загрузки изображений Android. Вместо этого используйте [android-glide]. См. Как избежать неправильного использования тегов? и руководство по тегам