Используйте Glide для загрузки изображений с URL-адреса, но без расширений

Я мог бы использовать Glide для загрузки изображений с моего локального веб-сервера с помощью следующего кода:

Glide.with(this)
     .load(SERVER_HOST_ADDRESS + userID + ".jpg")
     .into((ImageView) mBinding.getRoot().findViewById(R.id.userImage));

Проблема в том, что с помощью этого метода я ограничен доступом только к .jpg расширениям, когда иногда пользователь может выбрать загрузку другого типа изображения. Есть ли способ для Glide обрабатывать загрузку изображения с URL-адреса, но без расширений? Создание итератора было бы хорошо, но может быть ненужным.

Не помечайте вопросы тегом android-studio только потому, что вы его используете: тег Только должен использоваться, когда у вас есть вопросы о самой IDE, а не о коде, который вы пишете (или хотите написать) в ней. См. когда уместно удалить тег IDE. Вместо этого используйте [android] или другие соответствующие теги. Кроме того, не используйте тег glide для вопросов о библиотеке загрузки изображений Android. Вместо этого используйте [android-glide]. См. Как избежать неправильного использования тегов? и руководство по тегам

Zoe stands with Ukraine 30.05.2019 12:23
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
2 226
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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-адрес изображения).

  • Сделайте то, что вы предложили, и просто переберите различные возможности и посмотрите, работает ли одна из них.

Другие вопросы по теме