GIF图片的播放和拆解

ios中播放gif动画

(2012-03-29 16:59:48)

转载

标签:

杂谈

iPhone SDK提供了多种动画手段,UIView、UIImageView和CALayer都支持动画。但如何处理常见的gif动画呢?UIWebView提供了答案,代码如下:

1.使用UIWebView播放

// 设定位置和大小

CGRect frame = CGRectMake(50,50,0,0);

frame.size = [UIImage imageNamed:@"guzhang.gif"].size;

// 读取gif图片数据

NSData *gif = [NSData dataWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"guzhang" ofType:@"gif"]];

// view生成

UIWebView *webView = [[UIWebView alloc] initWithFrame:frame];

webView.userInteractionEnabled = NO;//用户不可交互

[webView loadData:gif MIMEType:@"image/gif" textEncodingName:nil baseURL:nil];

[self.view addSubview:webView];

[webView release];

2.将gif图片分解成多张png图片,使用UIImageView播放。

代码如下:

UIImageView *gifImageView = [[UIImageView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

NSArray *gifArray = [NSArray arrayWithObjects:[UIImage imageNamed:@"1"],

[UIImage imageNamed:@"2"],

[UIImage imageNamed:@"3"],

[UIImage imageNamed:@"4"],

[UIImage imageNamed:@"5"],

[UIImage imageNamed:@"6"],

[UIImage imageNamed:@"7"],

[UIImage imageNamed:@"8"],

[UIImage imageNamed:@"9"],

[UIImage imageNamed:@"10"],

[UIImage imageNamed:@"11"],

[UIImage imageNamed:@"12"],

[UIImage imageNamed:@"13"],

[UIImage imageNamed:@"14"],

[UIImage imageNamed:@"15"],

[UIImage imageNamed:@"16"],

[UIImage imageNamed:@"17"],

[UIImage imageNamed:@"18"],

[UIImage imageNamed:@"19"],

[UIImage imageNamed:@"20"],

[UIImage imageNamed:@"21"],

[UIImage imageNamed:@"22"],nil];

gifImageView.animationImages = gifArray; //动画图片数组

gifImageView.animationDuration = 5; //执行一次完整动画所需的时长

gifImageView.animationRepeatCount = 1;//动画重复次数

[gifImageView startAnimating];

[self.view addSubview:gifImageView];

[gifImageView release];

注意:这个方法,如果gif动画每桢间的时间间隔不同,不能达到此效果。

你可能感兴趣的:(GIF图片的播放和拆解)