用SDWebImage加载FLAnimatedImage

效果

源码

https://github.com/YouXianMing/Animations

//
// GifPictureController.m
// Animations
//
// Created by YouXianMing on 16/2/21.
// Copyright © 2016年 YouXianMing. All rights reserved.
// #import "GifPictureController.h"
#import "FLAnimatedImage.h"
#import "FLAnimatedImageView.h"
#import "UIImageView+WebCache.h"
#import "UIView+SetRect.h"
#import "GCD.h" @interface GifPictureController () @end @implementation GifPictureController - (void)setup { [super setup]; // https://github.com/Flipboard/FLAnimatedImage self.contentView.layer.masksToBounds = YES; FLAnimatedImageView *gifImageView = [[FLAnimatedImageView alloc] init];
gifImageView.frame = CGRectMake(0.0, 0.0, 100.0, 100.0);
[self.contentView addSubview:gifImageView]; __weak GifPictureController *wself = self;
NSString *imagePath = @"http://images2015.cnblogs.com/blog/607542/201601/607542-20160123090832343-133952004.gif";
NSData *gifImageData = [self imageDataFromDiskCacheWithKey:imagePath]; if (gifImageData) { [wself animatedImageView:gifImageView data:gifImageData]; } else { NSURL *url = [NSURL URLWithString:imagePath];
[[SDWebImageDownloader sharedDownloader] downloadImageWithURL:url
options:
progress:nil
completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) { [[[SDWebImageManager sharedManager] imageCache] storeImage:image
recalculateFromImage:NO
imageData:data
forKey:url.absoluteString
toDisk:YES]; [[GCDQueue mainQueue] execute:^{ [wself animatedImageView:gifImageView data:data];
}];
}];
}
} - (void)animatedImageView:(FLAnimatedImageView *)imageView data:(NSData *)data { FLAnimatedImage *gifImage = [FLAnimatedImage animatedImageWithGIFData:data];
imageView.frame = CGRectMake(, , gifImage.size.width, gifImage.size.height);
imageView.center = self.contentView.middlePoint;
imageView.animatedImage = gifImage;
imageView.alpha = .f; [UIView animateWithDuration:.f animations:^{ imageView.alpha = .f;
}];
} - (NSData *)imageDataFromDiskCacheWithKey:(NSString *)key { NSString *path = [[[SDWebImageManager sharedManager] imageCache] defaultCachePathForKey:key];
return [NSData dataWithContentsOfFile:path];
} @end

细节

用SDWebImage加载FLAnimatedImage的更多相关文章

  1. SDWebImage 加载显示 GIF 与性能问题

    SDWebImage 加载显示 GIF 与性能问题 SDWebImage 4.0 之前,可以用 UIImageView 显示 GIF 图.如果 SDWebImage 4.0 还这么做,只会显示静态图. ...

  2. SDWebImage 加载网络图片失败,重新运行,就能加载成功。

    现象: 使用SDWebImage 加载网络图片,偶尔会有一两张图片就是显示不出来.重新运行有时又可以了. 这个问题的原因是: 当SDWebImage 在加载图片的时候 我用的是- (void)sd_s ...

  3. 解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题

    下面两种现象,用同一种方法解决 1.解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题 2.突然有一天首页访问图片很慢,至少隔20多秒所有图片才会出来.(解析:app使 ...

  4. SDWebImage 加载显示 WebP 与性能问题

    SDWebImage 加载显示 WebP 与性能问题 本文包含自定义下载操作 SDWebImageDownloaderOperation 与编码器 SDWebImageCoder.SDWebImage ...

  5. 关于SDWebImage加载高清图片导致app崩溃的问题

    链接是对于SDWebImage的使用方法 http://www.cnblogs.com/JimmyBright/p/4457258.html 使用SDWebImage加载高清图片的时候,往往会报内存溢 ...

  6. 使用SDWebImage加载大量图片后造成内存泄露的解决办法

    SDWebImage的知名度就不用说了,github上近10k的star,国内外太多的App使用其进行图片加载. 但是最近在使用过程中发现,在UITableView中不断加载更多的内容,使用SDWeb ...

  7. SDWebImage 加载一些大的图片的时候导致程序崩溃

    在  UIImage+MultiFormat这个类里面添加如下压缩方法, +(UIImage *)compressImageWith:(UIImage *)image { float imageWid ...

  8. SDWebImage 加载Https自签名证书时的图片问题

    你是否遇到了这种情况,好不容易把自签名HTTPS证书配置好了,访问https接口也成功了,但是图片加载不出来? 传了SDWebImageAllowInvalidSSLCertificates 还是没效 ...

  9. 前不久一个swift项目用uicollectionview 用sdwebimage 加载图片,发生内存猛增,直接闪退的情况,简单说一下解决方案。

    1.首先在appdelegate方法 didFinishLaunchingWithOptions SDImageCache.sharedImageCache().maxCacheSize=1024*1 ...

随机推荐

  1. PHP科学计数法转换成数字

    /** * 科学计数法转换成数字 * @param $num * @param int $double * @return int */ function sctonum($num, $double ...

  2. LINUX的STRACE命令用法 [转]

    调用:strace [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] ...[ -ofile ] [ -ppid ] ... [ -sstrsize ] [ -u ...

  3. C语言:用指针求最大值和最小值

    用指针求数组最大值和最小值(10分) 题目内容: 用指针求含有十个元素的数组最大值和最小值 主函数参考 int main() { int a[10],i,maxnum,minnum; for(i=0; ...

  4. 几种常见类的使用(System,Runtime,Math,Date,Calendar,Random)

    一:System 1.介绍 System:类中的方法和属性都是静态的. out:标准输出,默认是控制台. in:标准输入,默认是键盘. 2.properties 获取系统属性信息:Properties ...

  5. node.js之nodemon 代码热更新 修改代码后服务器自动重启

    1.安装nodemon: npm install -g nodemon //全局安装 npm install nodemon --save //局部安装 2.在项目根目录下创建 nodemon.jso ...

  6. PocketMoney

    PocketMoney( Money.pas/cpp/c)Description学校为了表彰tsoi的优异成绩, m个领导每人都决定给tsoi的一些人发一些小红包.于是n个Tsoier排成一排,等待着 ...

  7. SpringMVC(十) RequestMapping RequestHeader注解

    在控制器方法中,通过类似 RequestHeader(value="Accept-Lanaguage") String lan 可以获取请求头信息. 控制器方法: package ...

  8. View初探

    View初探 学习自 <Android开发艺术探索> View漫谈 Activity构成了我们的界面但是知识一个空壳子,Activity与View相结合才构成了我们丰富多彩的界面,并且为了 ...

  9. 解决org.apache.jasper.JasperException: org.apache.jasper.JasperException: XML parsing error on file org.apache.tomcat.util.scan.MergedWebXml

    1.解决办法整个项目建立时采用utf-8编码,包括代码.jsp.配置文件 2.并用最新的tomcat7.0.75 相关链接: http://ask.csdn.net/questions/223650

  10. BZOJ.3139.[HNOI2013]比赛(搜索 Hash)

    题目链接 不会搜索了.. DFS()中两个参数,枚举每两个队伍的比赛结果(分配当前队伍的分数). 可以发现方案数量与具体哪只球队得了多少分无关,只与当前比赛的队伍数量和得分序列的组成有关.可以记忆化搜 ...