具体的情况
公司新增需求,要加载gif格式的图片,但是由于上传的图片过大,所以为了节省开支,对图片进行了压缩,给到客户端的是webp格式的图片。
面临的问题
现在的项目代码中使用的图片加载框架是Glide,但是Glide不支持加载动态webp图片,所以需要解决这个问题。
通过查找有以下几个解决方案
方案一
Fresco是支持加载动态webp格式图片,考虑放弃使用Glide,采用Fresco加载。
但随之而来的问题是,Fresco使用的是自己的View,而不是系统自带的ImageView,如果将Glide替换为Fresco,那么整个项目中的ImageView都需要进行替换,这个工作量是很大的,而且容易出问题。
方案二
寻找一个支持Glide加载webp格式图片的第三方库。
GlideWebpDecoder是Android平台上用于解码和显示webp图像的Glide集成库。它基于libwebp项目,参考了Fresco和GlideWebpSupport的一些实现。
考虑到修改的成本问题,我们最终采用了第二种方案。