Я создаю приложение для Android, которое в основном отвечает на события касания, когда происходит событие касания, я определяю, какое действие выполнить, и воздействую на него.Действие состоит из отображения разных растровых изображений, поэтому действие, по сути, является анимацией:
- OnTouchEvent -> draw Bitmaps on SurfaceView
Обычно 1 анимация состоит из 20-30 изображений размером 28 КБ.Поскольку мне нужно, чтобы приложение было очень отзывчивым, я не могу выделять и освобождать память на основе «на прикосновение», поэтому я хотел, чтобы все битмапы были загружены (что должно быть около 12 МБайт)
Однако, когда я достигаю около0,5 МБ загруженных изображений:
E/AndroidRuntime(10553): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
E/AndroidRuntime(10553): at android.graphics.BitmapFactory.nativeDecodeByteArray(Native Method)
Снова и снова .... есть идеи?Можно ли рисовать изображения на холсте без создания растровых изображений?Могу ли я конвертировать файлы JPG в растровые изображения без использования BitmapFactory?(Я читал здесь: BitmapFactory OOM сводит меня с ума , что главная проблема заключается в том, что в растровых данных используется Native Heap вместо кучи VM)
Любая помощь очень ценится: DЗаранее спасибо,Ze