Сайт разработчика Александра Климова

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Animation и Transition

Для создания реалистичных анимаций следует использовать класс Interpolator.

Animator

ValueAnimator

Пара примеров для ValueAnimator

Падают, падают, падают листья (ValueAnimator)

ValueAnimator: Развернуть/свернуть панель

ValueAnimator (Kotlin)

ObjectAnimator

В Android 3.0 появился класс ObjectAnimator.

Позволяет создавать стандартные виды анимации (прозрачность, перемещение, масштабирование, цвет).

Статья об ObjectAnimator.

ObjectAnimator. Вычислители

ObjectAnimator. Состояния анимации

ObjectAnimator. Анимация шариков

ViewPropertyAnimator

Появилась в Android 3.1 (API 12). Очень удобное использование - выбираете компонент и указываете цепочкой набор анимаций, которые выполняются параллельно или последовательно. Используется класс Animator.

Доступны анимации прозрачности, масштабирования, перемещения. Также можно установить длительность, задержку, интерполяторы.

Статья о ViewPropertyAnimator.

Ripple

Эффект Ripple появился в Android 5.0 и был доступен из коробки. Достаточно подключить нужный системный атрибут.


?android:attr/selectableItemBackground
?android:attr/selectableItemBackgroundBorderless

Также можно задать собственные виды эффекта при помощи RippleDrawable.

Статья о RippleDrawable.

createCircularReveal()

В Android 5.0 появился новый эффект появления, когда отображается или скрывается группа элементов интерфейса. Класс содержит всего один метод.

Класс ViewAnimationUtils и метод createCircularReveal().

AnimatedVectorDrawable

В Android 5.0 Lollipop появилась поддержка векторных изображений и анимация с ними. Позже векторные изображения стали доступны и для старых устройств через библиотеку совместимости.

Читать статью о AnimatedVectorDrawable.

android.support.animation

SpringAnimation (Kotlin)

Transition

Переходы обеспечивают зрительные связи между различными состояниями путем движения элементов и преобразований между общими элементами. Можно выбрать настраиваемые анимации для начальных и конечных переходов, а также для переходов общих элементов между операциями.

Класс TransitionDrawable (третий курс)

TransitionManager (шестой курс)

Scene (шестой курс)

Превращения между экранами активностей (Android 5.0, API 21) (седьмой курс)

Переход общих элементов между экранами активностей (Android 5.0, API 21) (седьмой курс)

Animation

Не забывайте, что у Android есть встроенные ресурсы для анимаций:

@android:anim/slide_in_left
@android:anim/slide_out_right
android.R.anim.fade_in
android.R.anim.fade_out

Анимация (традиционная, устаревшая) в Android бывает двух видов:

Примеры анимаций

ScaleAnimation и <scale>

AlphaAnimation и <alpha>

Дрожь земли

Класс AnimationUtils

Translate - Слайд-шоу

Пример использования rotate

RotateAnimation

Пример использования translate

TranslateAnimation

Создание анимации для Splash-экрана

Анимация переходов у ViewFlipper

Анимация у ViewPager

Анимация кнопки

Анимация разметки и групп представлений

Анимации между активностями

Анимация ListView и ListActivity

Анимация фрагментов

Взрывная анимация

Закрытая зона

Всплывающая панель (второй курс)

Анимация с использованием Matrix (второй курс)

TimeAnimator (второй курс)

Анимация диалоговых окон (третий курс)

Управляй мечтой (третий курс)

Новые анимации активностей в Android 4.1 (Jelly Bean) (третий курс)

animateLayoutChanges - Анимация при изменении разметки (четвёртый курс)

Динамическое добавление компонентов через анимацию (четвёртый курс)

Анимация при вращении устройства (Android 4.3) (пятый курс)

StateListAnimator (шестой курс)

Дополнительное чтение

Видео DevBytes: Cardflip Animation - анимация для игральных карт на основе ImageView. Исходник.

Видео DevBytes: Custom Activity Animations - GridLayout с превьюшками. При нажатии на картинку она всплывает в большом размере и пояснительным текстом. Исходник

Видео DevBytes: Animating ListView Deletion - Анимация при удалении элементов в ListView. Исходник

Codedependent: DevBytes: Anticipation & Overshoot, Part 2 - Мультяшная анимация при перемещении кнопки (видео и исходник)

Видео DevBytes Sliding Fragments - YouTube - Исходник

Видео DevBytes: Folding Layout - YouTube - эффект складывающей гармошки. Исходник

Библиотеки

MasayukiSuda/FPSAnimator: FPSAnimator is very easy animation library for Android TextureView and SurfaceView.

daimajia/AndroidViewAnimations

vpaliyX/Material-Motion: This repository contains examples of reveal animations - библиотека интересных эффектов.

race604/WaveLoading: A wave-like loading drawable

tangqi92/WaveLoadingView: An Android library providing to realize wave loading effect.

Реклама