何千もの画像を含むパラパラ漫画スタイルのアニメーションを使用するアプリケーションがあります。APK のサイズは、アプリ ストアに配置されることのない内部専用アプリケーションであるため、問題になりません。
私が抱えている問題は、アニメーターがサブクラス化されたImageViewであり、毎秒 15 フレームで画像を切り替え、setImageURIガベージ コレクションを呼び出すたびに実行されることです。では、ガベージ コレクションを実行させないsetImageURIの代替方法はありますか?
編集:もう少し背景情報。
私のアプリには最大 12 のシーケンスがあり、そのうちの 6 つには 1609 個の画像が含まれており、特定のフレームでさまざまなイベントを呼び出す必要があります。もう 1 つのニーズは、ユーザーが任意のフレームで停止して状況を調査し、アクションを実行するか、シーケンスを続行できるようにすることです。3D エンジンは理想的なソリューションでしたが、ユーザーが完全な自由を必要とせず、常に「レール」に乗っているため、この方法が持ち出されました。
これがアプリケーションの本質であり、問題が発生する場所です
try {
((BitmapDrawable) getDrawable()).getBitmap().recycle();
setImageURI(imgUri);
refreshDrawableState();
} catch (Exception e) {
e.printStackTrace();
}