使用Glide从URL加载图像但不带扩展名

时间:2019-05-30 10:22:16

标签: java android url android-glide

我可以使用Glide通过以下代码从本地Web服务器加载图像:

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

问题在于,使用这种方法时,我有时只能访问.jpg扩展名,而有时用户可能选择上载其他类型的图像。 Glide是否可以处理从URL加载图像但没有扩展名的方法? 构建迭代器会很好,但可能不必要。

2 个答案:

答案 0 :(得分:1)

  

Glide是否有办法处理从URL加载图像但没有扩展名的问题?

是的,尽管您的Web服务器可能不支持它。

我的解释是你想要

.load(SERVER_HOST_ADDRESS + userID)

如果您的Web服务器在该URL上提供具有有效图像MIME类型的图像,则Glide将对其进行处理。 Glide本身并不关心文件扩展名-它需要一个提供有效图像MIME类型的有效URL。

但是,我猜您的服务器将为该URL返回404错误,因为服务器期望文件扩展名与服务器上的文件匹配。

处理此问题的选项包括:

  • 教服务器如何处理无扩展名的网址

  • 使用一致的图像类型(例如,让服务器将所有内容都转换为JPEG)

  • 有一些元数据告诉您要加载的URL(例如,用于获取用户详细信息的Web服务调用具有提供图像URL的JSON属性)

  • 按照您的建议进行操作,然后迭代各种可能性,看看其中一种是否可行

答案 1 :(得分:-1)

“使用毕加索代替Glide”

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

“我认为这对您会有所帮助”