1

ゲームのOutOfMemoryErrorを取得し始めました。アニメーションごとに新しいビットマップを作成していたためだと思いましたが(同じ画像の複数のビットマップがあったため)、ImageLoaderクラスを作成して、各ビットマップを1回だけロードし、画像を必要とするオブジェクトは彼ら。

ただし、ゲームにはアニメーション、背景、アイテムなどの画像がたくさんあります。さらにいくつかのアイテムを追加したところ、エラーが発生し続けます。

他のゲームは多くの画像を持つことをどのように処理しますか?他の多くのゲームには私のものよりも多くの画像があり、それでもこのエラーを回避できると確信しています。

私がやってきたこととは異なる/より良いImageLoaderを実装する方法はありますか?

どうもありがとう、みんな!

4

1 に答える 1

2

ゲーム開発者は、画像サイズの最適化とメモリキャッシュの利用に多くの時間を費やすことで、この問題を解決します。

アプリが処理する必要のあるメモリの量を把握し、それを超えないようにすることが重要です。ビットマップの合計メモリフットプリントが特定のサイズ未満にとどまるようにするLRU(Least-Recently Used)キャッシュを設定できます。ビットマップをキャッシュに挿入するだけで、キャッシュが最大許容サイズ(指定したサイズ)に達すると、しばらく使用されていないビットマップのアンロードが開始されます。

この記事には、Androidドキュメントのコードスニペットなど、非常に優れた情報がいくつかあります。

于 2012-10-03T03:17:00.073 に答える