Я слышал, что использование списка растровых изображений для анимации - плохая идея. Но я не сталкивался с ситуацией, чтобы доказать, что это правда до сих пор.Использование PNG для анимации на Android
Код У меня есть работы отлично. Но только на эмуляторе или на моем телефоне под управлением Android 6. Все, что ниже этого, и я получаю Out of Memory, прежде чем он завершит инициализацию.
Это, как я загружаю изображения в:
public static Image[] flameIs = new Image[300];
for (int i=0;i<300;i++) {
if (i>=10) framePref="000";
if (i>=100) framePref="00";
Assets.flameIs[i] = g.newImage("frames/lighter_" + framePref +i+ ".png", ImageFormat.RGB565);
}
Так как 300, в формате PNG 8bit, около 12k каждого размера. Мы говорим о изображениях размером менее 4 МБ.
Все приложение впоследствии запускает эти кадры в цикле навсегда.
Есть ли способ избежать этого «из памяти»?
Каков средний размер ваших растровых изображений? – Gauthier
Все они 459x620 – durbnpoisn
Для каждого из ваших изображений требуется 284 580 байт для хранения несжатых данных в памяти (459 x 620 x 8 бит). Для 300 изображений, которые составляют 81 МБ в куче. –