Glide加载gif动画只播放一次的方法 Glide加载gif动画先显示最后一帧再开始播放动画导致闪屏的解决方案

1 篇文章 0 订阅
1 篇文章 0 订阅

场景:
Android App利用ViewPager制作引导页,然后利用Glide加载gif动画。

问题:
1.Glide加载gif动画如何只播放一次?
2.Glide加载gif动画,在viewPager切换的时候,总是先显示最后一帧,才开始播放动画,导致闪屏看着很不舒服,该如何解决?

解决方案:
1.Glide加载gif动画只播放一次的解决方案:只需要给Glide设置.listener方法,然后再onResourceReady方法中,通过 resource.setLoopCount(1)设置播放次数。

 options = new RequestOptions().skipMemoryCache(true);//配置
                
 GlideApp.with(mContext).asGif()
 .apply(options)//应用配置
                .load(R.drawable.guide_one)
                .listener(new RequestListener<GifDrawable>() {//添加监听,设置播放次数
                    @Override
                    public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<GifDrawable> target, boolean isFirstResource) {
                        return false;
                    }

                    @Override
                    public boolean onResourceReady(GifDrawable resource, Object model, Target<GifDrawable> target, DataSource dataSource, boolean isFirstResource) {
                        if (resource instanceof GifDrawable) {
                            resource.setLoopCount(1);//只播放一次
                        }
                        return false;
                    }
                })
                .into(ivGuideOne);

2.Glide加载gif动画,切换页面的时候先显示最后一帧再开始播放动画的问题解决方案。设置Glide禁止使用内存缓存即可。

如果在切换的过程中不限让左右的页面显示出来,可以设置左右页面的图片为透明,切换后再重新加载gif图片即可。

 //禁止Glide缓存gif图片,否则会导致每次切换页面会先显示gif图片最后一帧,然后才开始播放动画
        options = new RequestOptions()
                .skipMemoryCache(true);
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值