2011-01-20 2 views
0

Мое приложение работает некорректно на некоторых устройствах Android, но на некоторых устройствах оно выдает ошибку из памяти.Странная ошибка «из памяти»

Вот журнал LogCat:

http://logcat.miui-dev.com/147001

Что это активность делает нагрузки Bitmaps, и отображать эти Bitmaps через onDraw().

Что может вызвать эту ошибку?

Что делать?

Am просто Maping все изображения в методе изображения

_bitmapCache.put (R.drawable.gb2, BitmapFactory.decodeResource ( GetResources(), R.drawable.gb2));

и когда конструктор вызывается я называем этот метод, при использовании изображения я просто использовать

canvas.drawBitmap (_bitmapCache.get (R.drawable.level1c1), 0, 0, NULL);

в зоб изображение

+0

Вы искали это? http://stackoverflow.com/search?q=Strange+%E2%80%9COut+of+Memory%E2%80%9D+Error+android –

+0

да, это не решило проблему – nicky

ответ

1

Похоже, что вы запрашиваете 18 Мэг изображение. Вам нужно масштабировать изображения вниз. Каждое приложение допускает только 16-24 мегабайта кучи. Мне нужно будет больше узнать о вашем коде, чтобы сделать дополнительные предложения, но изображение на 18 мегабайт действительно слишком велико, и ImageView не выполняет лучшую работу по автоматическому масштабированию изображений, поэтому вам обычно приходится делать масштабирование перед отображением по моему опыту.

+0

отправил мой код в вопрос сам, – nicky

+0

Вы загружаете все ваши растровые изображения в чертежи и сохраняете их в хэш-карте в своем коде? –

1

Вы должны указать в параметрах BitmapFactory a inSampleSize, что позволит напрямую загрузить уменьшенную версию растрового изображения.

+0

пробовал, что не работал – nicky

+0

Он делает. Но обработка больших изображений - не простая проблема. В моем приложении EmailAlbum мне пришлось реализовать этот http://code.google.com/p/emailalbum/source/browse/EmailAlbumAndroid/tags/REL-2_10_2/src/com/kg/emailalbum/mobile/util/BitmapLoader. java для загрузки изображений в сокращенной версии и их кеширования. –

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