我有一個png圖像列表,我希望它們一個接一個地顯示動畫。在我的大多數情況下,我使用帶有動畫圖像的UIImageView,它工作正常。但在一些情況下,我的PNG是100幀以上的1280 * 768(全屏iPad)動畫。我發現在模擬器上使用UIImageView非常緩慢(第一次加載時間太長),我相信如果將它放在設備上,速度會更慢。在iOS中更快的替代UIImageView
有沒有別的方法可以很順利地顯示圖像序列?也許核心動畫?有沒有我能看到的工作例子?
我有一個png圖像列表,我希望它們一個接一個地顯示動畫。在我的大多數情況下,我使用帶有動畫圖像的UIImageView,它工作正常。但在一些情況下,我的PNG是100幀以上的1280 * 768(全屏iPad)動畫。我發現在模擬器上使用UIImageView非常緩慢(第一次加載時間太長),我相信如果將它放在設備上,速度會更慢。在iOS中更快的替代UIImageView
有沒有別的方法可以很順利地顯示圖像序列?也許核心動畫?有沒有我能看到的工作例子?
核心動畫可用於基於矢量/關鍵幀的動畫 - 而不是圖像序列。在iPad上加載超過一百個全屏PNG是一個不錯的主意,如果不是直接終止,你幾乎肯定會得到一個內存警告。
您應該使用視頻來顯示這些類型的動畫。性能會好很多。你有什麼理由不能爲你的動畫使用H.264視頻?
製作您的照片視頻。這是最簡單也可能是最合理的方法。
如果你想要非常好的性能和完全控制你的動畫,你可以將圖片轉換爲pvrtc4格式,並使用OpenGL將它們作爲廣告牌(紋理小圖)進行繪製。如果你不知道如何去做,這可能是很多工作。
再看第二個例子
http://www.modejong.com/iPhone/
從http://www.modejong.com/iPhone/
也有UIImageView.animationImages API提取物,但使用多了一個時,它迅速地吸收了所有的系統內存幾個體面大小的圖像。
我想要顯示一個持續2秒的全屏幕動畫,速度爲15 FPS,這是總共30張尺寸爲480x320的PNG圖像。此示例實現了一個面向動畫的視圖控制器,它只需等待讀取幀的PNG圖像數據,直到需要爲止。
這個類不是全部配置了很多兆字節,而是運行在大約半兆的內存上,第二代iPhone的CPU利用率約爲5-10%。此示例也已更新,包括在顯示動畫時可選擇通過AVAudioPlayer播放音頻文件的功能。
lxt是正確的。如果你有超過100幀的全屏動畫圖像排序不是正確的方法。你應該尋找視頻或將其分解成實際的精靈並用代碼動畫他們的動作。 –
我希望這些動畫在其中大部分都具有透明度的alpha通道。 H.264視頻會提供透明度嗎? – Panos
否 - 如果你需要alpha,你可能需要找到一個替代方法(可能使用關鍵幀或路徑爲單個對象設置動畫)。正如Minthos所建議的那樣,您可以嘗試使用OpenGL,但擁有超過1024像素的紋理,這可能不是一個可行的解決方案。 – lxt