Android предоставляет мощные API для анимации элементов пользовательского интерфейса и построения 2D и 3D изображений.
Платформа Android предоставляет две системы анимации: анимация свойств, появившаяся в Android 3.0, и анимация компонентов пользовательского интерфейса (наследников класса View). Рассмотрим подробнее обе эти системы.
Анимация свойств (Property Animation). Система анимации свойств позволяет определить анимацию для изменения любого свойства объекта, независимо от того изображается оно на экране или нет. Используя эту систему, можно задать следующие характеристики анимации:
Большая часть API системы анимации свойств находится в пакете android.animation. Также можно использовать блоки интерполяции, определенные в пакете android.view.animation.
Класс Animator предоставляет базовую структуру для создания анимации. Напрямую этот класс обычно не используется, так как обеспечивает минимальную функциональность, поэтому чаще всего используются классы-наследники, расширяющие возможности класса Animator. Рассмотрим основные классы, используемые для создания анимации свойств.
Классы-вычислители определяют как вычислять значения заданных свойств. Они получают: данные о распределение времени, предоставляемые классом Animator, начальное и конечное значения свойства, после чего на основе этих данных вычисляют значения свойства, для которого выполняется анимация. В системе анимации свойств существуют следующие вычислители:
Интерполяторы определяют с помощью каких функций от времени, вычисляются значения свойств, для которых задается анимация. Интерполяторы определены в пакете android.view.animation. Если ни один из существующих интерполяторов не подходит, можно создать собственный, реализовав интерфейс TimeInterpolator.
Подробнее с системой анимации свойств можно познакомиться по ссылке: http://developer.android.com/guide/topics/graphics/prop-animation.html.
Анимация компонентов пользовательского интерфейса. Эта система может быть использована для реализации анимации преобразований над наследниками класса View. Для расчета анимации преобразований используется следующая информация: начальная точка, конечная точка, размер, поворот и другие общие аспекты анимации. Анимация преобразований может выполнять серии простых изменений содержимого экземпляра класса View. Например, для текстового поля можно перемещать, вращать, растягивать, сжимать текст, если определено фоновое изображение, оно должно изменяться вместе с текстом. Пакет android.view.animation предоставляет все классы, необходимые для реализации анимации преобразований.
Для задания последовательности инструкций анимации преобразований можно использовать или XML, или Android код. Более предпочтительным является определение анимации в XML файлах, располагаться эти файлы должны в папке res/anim/ проекта. XML файл должен иметь единственный корневой элемент, это может быть любой из отдельных элементов: <alpha>, <scale>, <translate>, <rotate>, интерполятор, или же элемент <set>, который содержит группы этих элементов, в том числе может содержать другие элементы <set>. По умолчанию инструкции анимации выполняются одновременно, чтобы задать последовательное исполнение необходимо определить атрибут startOffset.
Подробнее с системой анимации преобразований можно познакомиться по ссылке: http://developer.android.com/guide/topics/graphics/view-animation.html.
Дополнительно к рассмотренным системам анимации может использоваться, кадровая анимация, которая реализуется быстрой сменой кадров, каждый кадр является графическим ресурсом и располагается в папке res/drawable/ проекта.
Подробнее с кадровой анимацией можно познакомиться по ссылке: http://developer.android.com/guide/topics/graphics/drawable-animation.html.