У меня есть 2 больших тихих анимация каждого 50pics 20kb Как определяются как Анимации .xmlAndroid setBackgroundResource релиз памяти?
Один я позволил начать с самого начала, а второй после нажатия кнопки.
//Start immediatly
imgView.setBackgroundResource(R.layout.anim1);
rocketAnimation = (AnimationDrawable) imgView.getBackground();
//Start after button click
imgView.setBackgroundResource(R.layout.anim2);
rocketAnimation = (AnimationDrawable) imgView.getBackground();
Он отлично работает, пока я нажал на кнопку и назначить второй Аним на мой взгляд
08-22 14:56:03.886: DEBUG/AndroidRuntime(1541): Shutting down VM
08-22 14:56:03.886: WARN/dalvikvm(1541): threadid=3: thread exiting with uncaught exception (group=0x4001da28)
08-22 14:56:03.886: ERROR/AndroidRuntime(1541): Uncaught handler: thread main exiting due to uncaught exception
08-22 14:56:04.096: ERROR/AndroidRuntime(1541): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
08-22 14:56:04.096: ERROR/AndroidRuntime(1541): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
Это выглядит определенно, что каждая анимация для себя отлично (я мог бы даже установить anim2 в автозагрузку). но ОБА превысит память.
КПП. на моем Nexus One он работает отлично. Там, где он терпит неудачу, на G1 1.6 (даже в симуляторе).
Так КАК я бы отпустил анимацию первым, прежде чем назначить anim2 ??
ТНХ Крисом
Привет, я попробовал прямо сейчас ... не помог, все равно просто сбой :( как упоминалось каждый из них для его самостоятельной работы, поэтому mem для одного из этих анимаций достаточно, но выглядит последний аниматор не выйдет. –
Возможно, анимация просто слишком велика для устройства. Вы можете рассчитать память, которую она ест. см. мой ответ на http://stackoverflow.com/questions/3238388/android-out-of-memory-exception -in-gallery/3238945 # 3238945 ... размер файла изображений (т. е. 20kB) не имеет значения, важно то, что это ширина и высота, поскольку он полностью преобразуется в растровые изображения внутри, и поэтому актуальной является память, что эти –
Спасибо, сейчас мое приложение отлично работает на 2.2 (здесь управление памятью намного лучше) ... попробует ваш код также с 1.6 - 2.0 , пока он говорит в 2.2: 0 8-22 15: 16: 30.564: DEBUG/1 (27859): debug.heap native: выделено 3.66MB из 3.70MB (0.03MB бесплатно) в [com.chris.myapp.mainactivity] 08-22 15:16: 30.564: DEBUG/1 (27859): debug.memory: выделено: 2.00MB 24.00MB (0.00MB бесплатно) –