Glide 加载webp动图

前提

公司新需求要求视频封面加载动图,但是由于Gif上传的图片过大,所以为了节省开销,对图片进行了处理,最后给到客户端的是webp格式的图片链接。

1.验证webp格式的图片链接是否是动图,测试时,将链接直接使用电脑浏览器加载查看即可

2.app如何加载webp动图,上网搜索一番,发现有对glide的支持库,添加如下依赖

//Glide库
 implementation 'com.github.bumptech.glide:glide:4.12.0'//androidx
 annotationProcessor "com.github.bumptech.glide:compiler:4.12.0"//androidx
//Glide支持webp动图的库
 implementation "com.github.zjupure:webpdecoder:2.0.4.12.0"

3.使用加载,添加监听 判断WebpDrawable

public void loadWebpGif(ImageView iv,String url, int defaultIcon){
 Glide.with(this)
     .load(url)
     .addListener(new RequestListener<Drawable>() {
                    @Override
                    public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
                        iv.setImageResource(defaultIcon);
                        return false;
                    }
 
                    @Override
                    public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
                        if (resource instanceof WebpDrawable) {
                           WebpDrawable webpDrawable = (WebpDrawable) resource;
                            //循环
                           webpDrawable.setLoopCount(-1);
                        }
 
                        return false;
                    }
                })
                .into(iv);
    }

4.布局里就是简单的ImageView,一定要使用 ImageView或AppCompatImageView,不要使用自定义的ImageView ,否则会导致动图,不会动,如果有图片圆角需求,可以在外层包裹CardView实现。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值