Как анимировать в Android Canvas? - PullRequest
0 голосов
/ 30 января 2011

Я хочу нарисовать что-то со скоростью около 30 кадров в секунду на Android Canvas или другом удобном для этого объекте. В моем приложении отрисовываются различные графические объекты, и, если прикоснуться к какому-либо графическому объекту, графический объект меняет свою форму. Я посмотрел на Обратный вызов onDraw (Canvas canvas) для подкласса View, но вызов invalidate () здесь не помогает: во-первых, я не могу контролировать частоту кадров, а во-вторых, если объекты движутся слишком быстро, движение кажется прерывистым.

1 Ответ

1 голос
/ 26 мая 2011

Мне лично не нравятся встроенные в Android классы анимации, поэтому я склонен делать все анимации с помощью Canvas вручную.Я нашел наибольшую удачу в создании списка изображений, которые вы хотите использовать в вашей анимации, а затем в переменной int для хранения текущего «кадра», в котором вы находитесь.Чтобы продвинуть кадр, я создаю поток, который спит, скажем, 30 мс, а затем соответствующим образом обновляю переменную кадра.Затем в любом используемом вами обработчике обновлений вы можете просто создать оператор switch или что-то в этом роде и нарисовать соответствующий фрейм.

Это может показаться большой работой, но на самом деле это не так.Засунь все это в класс, и ты будешь любить себя за многие анимации.

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