2016-12-09 4 views
0

У меня проблема с этим. Я хочу добавить эти фотографии, поскольку у них есть какой-то индекс, но я попытался добавить к массиву и теперь hashmap. Теперь та же ошибка.Недостаточно памяти из-за фотографий студия андроида

Как я могу добавить эти изображения в индексы, чтобы они не использовали все воспоминания? Я пытаюсь сделать викторину, и я проиндексировал правильный ответ как номер 0-21.

Error picture

+0

Попробуйте сжимать эти изображения. Если прозрачность не важна, сделайте их jpegs – peter

+0

Не можете ли вы использовать меньшие изображения? Нужно ли одновременно загружать все изображения в память? Может быть, вы можете загрузить их в программу tv, а затем выгрузить tvem. – user3532232

ответ

1

ошибка происходит потому, что весь ваш декодируются вводимый коэффициент в виде растровых изображений. Подумайте о том, чтобы хранить int id в вашем Collection (например, R.drawable.someimagename) и получить реальный объект Drawable как раз вовремя, когда это необходимо.

Поскольку у вас есть постоянное количество записей с номерами от 0-21, вы можете использовать массив:

int[] groundForceDrawables = new int[22]; 
groundForceDrawables[0] = R.drawable.sotamies_kauluslaatta; 
groundForceDrawables[1] = R.drawable.korpraali_kauluslaatta; 
// and so on 

Когда вам действительно нужно сделать изображение с индексом я:

Drawable myCurrentDrawable = getResources().getDrawable(groundForceDrawables[i]); 

Это будет приемлемо только в том случае, если вам не нужно одновременно отображать все чертежи. Если вам нужно сохранить объекты Drawable в кеше вместе, так как вы должны отображать их все одновременно, я по-прежнему рекомендую их масштабировать, ваша куча будет достаточно большой, чтобы сохранять растровые изображения, чтобы заполнить экран, если их разрешение бесполезно высоко ,

Также вы можете увеличить размер кучи, если вы еще не сделали этого уже: How to increase heap size of an android application?

+0

. Привет, вы можете мне помочь? Я не совсем понял, как сохранить int в коллекции? – chazefate

+1

обновил мой ответ –

+0

Спасибо, что так много !!!! Для этого я использовал более 10 часов. У Спасителя! – chazefate

Смежные вопросы