Glide加载gif动画只播放一次的方法 Glide加载gif动画先显示最后一帧再开始播放动画导致闪屏的解决方案
程序员文章站
2024-03-25 12:12:22
...
场景:
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);
上一篇: 常用的JS原生方法
下一篇: jquery动画animate的方法