Transitions API.pptx
- Количество слайдов: 19
Android Анимации c помощью Transitions API Адель Беков, 11 -301
Transitions API для анимаций появились в Android начиная с 4. 4 (Kit. Kat) и продолжили свое развитие в 5. 0 (Lollipop).
Kit. Kat Transition API приносит нам понятия сцены — Scene и некоторого изменения между сценами — Transition. В добавок к ним вводим понятие Scene root для определения корневого layout, внутри которого будут происходить изменения сцен. А сама сцена это некоторый враппер над View. Group, который описывает конкретное состояние его самого и всех содержащихся в нем объектов View.
Начнем с самого простого варианта использования Transitions API. Представим, что текущее состояние нашего layout это первая сцена. Допустим у нас просто изображен квадрат.
Опишем layout через xml:
Увеличиваем размер нашего квадрата
Неплохо, анимация всего одной строкой. Причем таких изменений внутри layout может быть любое количество.
Типы Transition Change. Bounds. Именно он выполнялся в первом примере. Это Transition, который отвечает за изменение координат View внутри layout и его размеров. Fade. Объединяет в себе всем известные анимации fade in и fade out. Он является наследником класса Visibility, который придуман для тех Transition, которые выполняются в тот момент, когда View была видна в первой сцене, но должна исчезнуть при переходе во вторую, или же, наоборот, появиться.
Типы Transition. Set. Тоже является наследником Transition, однако представляет из себя всего лишь набор какого-либо количества других Transition, которые выполняются по очереди или одновременно. Очередность устанавливается с помощью метода set. Ordering.
Типы Transition Auto. Transition. Он является таким Transition. Set, который всего лишь является набором из последовательно выполняющихся Fade с параметром Fade. OUT, Change. Bounds и Fade с параметром Fade. IN. Таким образом, сначала с fade out эффектом прячутся все View, которых нет во второй сцене, потом происходит перемещение и изменение размеров для View, у которых эти параметры изменились, и, наконец, с fade in появлятся новые элементы из второй сцены. Именно Auto. Transition выполняется, когда мы, как и в первом примере, не указали никакого конкретного Transition методу begin. Delayed. Transition.
Еще один пример
Layout. xml
scene 1
scene 2
И еще немного скучного, но ничуть не сложного кода
Slide. Новый Transition, который является наследником Visibility, как и Fade. C помощью него появляющаяся в сцене View может «прибегать» из выбранного края. Пример с new Slide(Gravity. LEFT)):
Change. Image. Transform. Transition, который анимирует матричный переход изображения внутри Image. View. С помощью него можно плавно изменять размеры и scale. Type изображений. Вот пример.
В build. gradle добавить зависимость dependencies { compile "com. andkulikov: transitionseverywhere: 1. 6. 3" } Ссылка на библиотеку https: //github. com/andkulikov/transitionseverywhere Подключение
Спасибо за внимание
Transitions API.pptx