Используйте Glide для загрузки изображений с URL, но без расширений - PullRequest
0 голосов
/ 30 мая 2019

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

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

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

Ответы [ 2 ]

1 голос
/ 30 мая 2019

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

Да, хотя ваш веб-сервер может не поддерживать его.

Моя интерпретация такова, что вы хотите:

.load(SERVER_HOST_ADDRESS + userID)

Если ваш веб-сервер обслуживает изображение по этому URL-адресу с допустимым типом изображения MIME, Glide будет обрабатывать его. Сам Glide не заботится о расширениях файлов & mdash; ему нужен действительный URL-адрес, который предоставляет действительный тип MIME изображения.

Тем не менее, я предполагаю, что ваш сервер вернет ошибку 404 для этого URL, поскольку сервер ожидает, что расширение файла совпадет с файлом на сервере.

Варианты решения этой проблемы включают:

  • Научите сервер работать с URL-адресом без расширения

  • Используйте согласованный тип изображения (например, сервер должен конвертировать все в JPEG)

  • Некоторые метаданные сообщают вам, какой URL загружать (например, вызов веб-службы для получения сведений о пользователе имеет свойство JSON, предоставляющее URL-адрес изображения)

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

0 голосов
/ 30 мая 2019

«Используйте Пикассо вместо Glide»

Picasso.get().load(IMG_URL + Image.extension).into(ImageView);

«Я думаю, это будет полезно для вас»

...