我有一个png图像列表,我希望它们一个接一个地显示以显示动画。在我的大多数情况下,我使用带有animationImages的UIImageView,它工作正常。但在一些情况下,我的pngs是1280 * 768(全屏iPad)动画,100多帧。我看到在仿真器上使用UIImageView非常慢(第一次加载太长时间)我相信如果我把它放在设备上它会更慢。
是否有任何替代方案可以非常顺利地显示图像序列?也许核心动画?我能看到任何可行的例子吗?
答案 0 :(得分:4)
核心动画可以用于基于矢量/关键帧的动画 - 而不是图像序列。在iPad上加载超过一百个全屏PNG是一个真的坏主意,如果没有完全终止,你几乎肯定会收到内存警告。
您应该使用视频来显示这些动画。性能会好很多。是否有任何理由不能将H.264视频用于动画?
答案 1 :(得分:3)
制作图片视频。这是最简单也可能是最合理的方法。
如果您想要非常好的表现并完全控制动画,可以将图片转换为pvrtc4格式,并使用OpenGL将它们绘制为广告牌(纹理精灵)。如果您不知道该怎么做,这可能会有很多工作。
答案 2 :(得分:0)
看第二个例子
http://www.modejong.com/iPhone/
摘自http://www.modejong.com/iPhone/
还有UIImageView.animationImages API,但是当使用超过几个体面的图像时,它会迅速吸收所有系统内存。
我想要显示一个持续2秒的全屏幕动画,15 FPS,总共30张PNG图像,大小为480x320。此示例实现了一个面向动画的视图控制器,它只需等待读取帧的PNG图像数据,直到需要它为止。
这个类运行大约半兆内存,而第二代iPhone的CPU利用率约为5-10%,而不是分配多兆字节。此示例也已更新,包括在显示动画时可选择播放AVAudioPlayer音频文件的功能。