OutOfMemoryError: размер растрового изображения превышает бюджет виртуальной машины (не проблема размера изображения) - PullRequest
1 голос
/ 29 июля 2011

Я знаю, что эта ошибка возникала много раз в стеке, но обычно это была проблема с размером растрового изображения. Мой отличается. У меня есть ListView с пользовательским адаптером. Вот мой метод getView:

public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = inflater.inflate(R.layout.cell, null);
    }
    if (position % 2 == 0) {
        convertView.setBackgroundResource(R.drawable.cell_even_bg);
    } else {
        convertView.setBackgroundResource(R.drawable.cell_odd_bg);
    }
}

Теперь, когда у меня есть, например. 100 ячеек в моем listView, и я прокручиваю этот список в течение некоторого времени, наконец, я всегда получаю ошибку OutOfMemoryError: размер растрового изображения превышает бюджет виртуальной машины - и в DDMS я вижу, что это происходит при вызове convertView.setBackgroundResource (...). Мои рисунки размером 1x10 пикселей и повторяются по оси Y.

1 Ответ

0 голосов
/ 29 июля 2011

Я пишу тестовое приложение с 100 ячейками, чтобы проверить вашу проблему и обнаружил, что она работает нормально (прокручивать много раз), без ошибки OOM.В вашем коде должны быть другие утечки памяти.

...