Большие анимации с AnimationDrawable - PullRequest
3 голосов
/ 09 декабря 2011

Я пытаюсь анимировать некоторые вещи с помощью покадровой анимации с помощью AnimationDrawable.
Когда я загружаю анимацию с этим кодом:

animationHolder.setBackgroundResource(R.drawable.secondanimation);
frameAnimation = (AnimationDrawable)animationHolder.getBackground();

Пользовательский интерфейс перестает отвечать на запросы в течение нескольких секунд (3-5).Я думаю, это потому, что он должен загружать много изображений (точнее, 140 png, 400px X 300px, 50KB каждый ).

Когда я запускаю анимацию, она работает нормально, по крайней мерена моем HTC Desire.

Если я запускаю тот же код в эмуляторе, я получаю: «OutOfMemoryError» с «битмап размером превышен бюджет виртуальной машины».

Как правильно обрабатывать большие анимации?Я предполагаю, что должна быть какая-то «ленивая загрузка анимации».Что-то подобное уже существует, или мне нужно развернуть какой-то пользовательский вид?

Как другие популярные приложения, такие как дуэт «Говорящий кот»?

1 Ответ

1 голос
/ 10 декабря 2011

Вы не будете делать анимации таким образом ... Если вам нужно делать тяжелые анимации, посмотрите в opengl. Android не может обрабатывать слишком много изображений, потому что использует ограниченную растровую память.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...