イメージビューに表示したい png シーケンスがあります。それぞれ最大 44kb の 745 フレームがあり、23 fps で再生したいと考えています。一部のフレームは前のフレームとは異なるか空白であるため、たとえばフレーム 100 ~ 243 および 340 ~ 400 の更新をスキップできます。したがって、ディスク上の合計サイズは約 9 MB になります (アニメーションに一時停止があり、アニメーション オブジェクトが画面から消えることがあるため、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
ループ
アニメーションを終了します...
その後、Activty を閉じます。
問題は、Android でこれを行う方法です。
AnimationDrawable と animationlist.xml 配列を使用してみましたが、フレームが 40 を超えると Simulator VM エラーが発生します。実際のデバイスで実行するためにもう少し取得できます。
私を正しい方向に向ける助けがあれば、感謝します。