SD4.0 gif动图无法加载本质原因

最近使用最新版SD,导致App中很多gif图无法加载,网上搜一下 原来是SD不支持了,以及推出一个新的库FLAnimatedImage,专门用来处理gif图加载问题。在更新描述上也说的很清楚。但是,SD是咋处理的呢,怎么搜也搜不到,于是便自己看SD源码。

找到UIImage+GIF.m(SD 网络GIF图和本地GIF图都是最终通过这个类实现动态)这个类。代码截图如下:

可加载gif代码


最新的代码

很明显看到,之前的代码是对每一帧都取出来,然后后续播放。问题出在作者获取每一帧图像的显示时间的目的仅仅是为了计算gif动画的总时长,并没有给每一帧图像的显示时间分配相应的权重,导致每一帧图像显示的时间为平均时间,视觉上给人带来了卡顿效果。所以sd直接去掉这块用FLAnimatedImage代替。最新的代码,只取了第一帧。所以现在SD不支持动图了,不过可以使用FLAnimatedImage

个人喜欢看问题,找到根本原因,所以在此记录下寻找的过程。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,812评论 25 709
  • 想在昏暗的房间里看场电影 看到痛哭流涕 想在阳光的午后看一本书 想躺着 睡个天昏地暗 不要醒 没有噩梦 三天没翻过...
    彗星图阅读 279评论 0 0
  • 阳光淡了,被风吹得歪歪斜斜。 咫尺的阳台的角落里,黯淡了黄昏的颜色。 不远处,写在湖边的公路上的流泻的人影,有续地...
    Desconhecido阅读 330评论 0 1
  • 作者:“安顺” 我们都做到了 对爱情一点也放不下 美丽的星空快赶走失落吧 我们的眼泪 只会留给远方的布尔津高地 梦...
    彭先生10阅读 467评论 0 1