0
我正嘗試在android中創建單人紙牌遊戲,因此我正在嘗試加載一張完整的卡片圖像(總共53個圖像,前面52個圖像和一個爲卡的後面)。圖像加載得很好,但是當我嘗試縮放它們以適應任何設備的屏幕時,通常在第13張卡的附近出現內存不足錯誤。這裏是我的方法來擴展卡:加載位圖列表時出現OOM錯誤Android
public ArrayList<Card> mapBitmapToCard(ArrayList<Card> listOfCards, ArrayList<Bitmap> listOfImages, int screenHeight){
ArrayList<Card> result = new ArrayList<>();
for (int i = 51 ; i >= 0 ; i--){
Card card = listOfCards.get(i);
card.setScaleFactor(screenHeight);
Bitmap cardFront = listOfImages.get(i);
listOfImages.remove(i);
card.image = Bitmap.createScaledBitmap(cardFront, (int) (cardFront.getWidth() * card.scaleFactor), (int) (cardFront.getHeight() * card.scaleFactor), true);
cardFront.recycle();
Bitmap back = Bitmap.createBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.card_back));
card.back = Bitmap.createScaledBitmap(back, (int) (back.getWidth() * card.scaleFactor), (int) (back.getHeight() * card.scaleFactor), true);
back.recycle();
result.add(card);
System.out.println("" + (52 - i) + " cards completed");
}
return result;
}
有沒有什麼辦法可以解決這個礦石更有效地完成這個?
您可能也不需要預加載全部52個卡片前端。看看你是否可以按需快速載入它們。 – GreyBeardedGeek 2015-03-08 23:36:15