美文网首页Android日常
Android Glide 升级到4.9 gif播放闪烁问题修复

Android Glide 升级到4.9 gif播放闪烁问题修复

作者: 盗版三弟 | 来源:发表于2020-04-29 10:52 被阅读0次

    先看下现象

    GIF 2020-4-29 10-16-32.gif

    在glide3.x升级到4.9发现 在recyclerview中播放单张gif图片 ,多张挨着滑动交替播放(同一时间只播放顶部的gif)的时候, 出现了闪烁flicker,通过GifDrawable.stop()方法暂停播放的gif还在一闪一闪的播放。

    问题分析

    1.该操作在3.x上没有问题,怀疑是4.9 glide的接口行为有变更
    2.把原来调用GifDrawable.stop()的逻辑去掉 让多个gif同时播放,测试发现多张gif可以正常播放,侧面验证是这个GifDrawable.stop()引起的
    3.找解决办法:去glide的官网找3.xdao4.x升级的行为变更说明 或者 在glide的github仓库issue中溜溜 看有没有掉过坑的;(当然对glide有深入了解的 可以撸4.9的源码 对比3.x到4.x的接口实现变更定位问题)

    在glide官方文档的 常见问题 中找到了原因

    微信图片_20200429104030.png

    可见是我们持有或者调用了glide的GifDrawable中的方法 ,导致glide的内部资源没有正常释放,重用时发生了错误;解决方法就是 去掉这些对glide内部bitmap、drawable的持有和调用即可,业务实现根据具体场景换实现方式。

    附glide文档地址:http://bumptech.github.io/glide/doc/resourcereuse.html#common-errors
    中文翻译(非官方)地址:
    https://muyangmin.github.io/glide-docs-cn/doc/resourcereuse.html

    相关文章

      网友评论

        本文标题:Android Glide 升级到4.9 gif播放闪烁问题修复

        本文链接:https://www.haomeiwen.com/subject/ikfgwhtx.html