我有一个要在图像视图中显示的 png 序列。它有 745 帧,每帧最大 44kb,并希望以 23 fps 的速度播放。有些帧与前一帧不同或为空白,因此我可以跳过更新帧 100-243 和 340-400 等。所以磁盘上的总大小最终约为 9mb(我只需要使用 745 帧中的 249 个图像,因为动画中有一些暂停,有时动画对象会离开屏幕)。所有图像均为 320 x 480,并按比例缩放以适合屏幕。
在播放时,我需要在不停止动画的情况下沿途做一些其他的事情。我是 Java 新手。在伪代码中,我想做这样的事情:
活动加载...
对于 x = 1 到 745
if exsists("image" & x) then
imageview setbackground("image" & x) (change this every 35ms)
switch (x)
case: 10 then call a function at frame 10
case: 100 then call a function that vibrates 0.5sec at frame 100
case: 200 then call different function at frame 200
环形
结束动画...
然后关闭活动。
所以问题是如何在Android上做到这一点?
我尝试使用 AnimationDrawable 和 animationlist.xml 数组,但如果我有超过 40 帧,则会出现模拟器 VM 错误。我可以在实际设备上运行更多。
任何帮助我指出正确方向的帮助都将不胜感激。