我正在创建一个类似于Bubble Pop的 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 的最佳做法是什么?