たとえば、いくつかのビットマップを複数回使用する必要があるバブル ポップに似た Android ボード ゲームを作成しています。
ストーン (10x10) のリストがあります。各ストーンは、ビットマップとその他の値を保持するオブジェクトです。多くのビットマップ (石の色) は同じです。
現在、リスト内のすべてのストーンに次のようなものを使用しています。
public class Stone extends Point{
private Bitmap mImg;
public Stone (int x, int y, Resources res, Stones mStone) {
...
mImg = BitmapFactory.decodeResource(mRes, mStone.getId());
}
protected void changeColor(Stones newD){
mStone = newD;
mImg = BitmapFactory.decodeResource(mRes, mStone.getId());
}
}
同様の質問をいくつか見つけましたが、それはすべて大きなビットマップに関するものです。また、画像のキャッシュに関する Android のドキュメントをいくつか見つけましたが、それで問題が解決するかどうか、またこのキャッシュをすべてのストーン間で共有する方法がわかりません。
優れたパフォーマンスを達成し、OutofMemoryError を回避するためのベスト プラクティスは何ですか?