Animation — сколько нужно классов, чтобы красиво переместить вьюшку?
Глоссарий:
• интерполятор — функция, описывающая изменение значения во времени
например, значение может изменяться линейно или по экспоненте
• pivotX, pivotY — координата точки внутри View, относительно которой будет применена анимация (например, вращение)
Как можно сделать анимацию:
• ValueAnimator — задаем начальное и конечное значение числа, назначаем интерполятор, вешаем колбек, получаем значение каждые n миллисекунд, делаем с ним что хотим
• ObjectAnimator — то же самое, что и ValueAnimator, только сразу принимает название параметра View, который нужно менять
например, ObjectAnimator.ofFloat(view, "alpha", 1f, 0f)
• ViewPropertyAnimator — оптимизированный ObjectAnimator
имеет более удобный синтаксис, синхронизирует внутри себя анимации над одним и тем же параметром
• LayoutTransition — определяет анимацию появления/удаления элемента
например, есть дефолтная реализация для LinearLayout, включается параметром android:animateLayoutChanges="true"
• Scene — анимация между состояниями экрана
создается две xml — со стартовым и конечным положением вьюшек
• MotionLayout — наследник ConstraintLayout с API для анимации сложных перемещений вьюшек, с которыми взаимодействует пользователь
• WindowAnimation — анимашки перехода между Activity
• AnimationDrawable — описание анимации в drawable
Дополнительное:
• AnimatorSet — упрощает комбинацию анимашек
например, можно запустить анимации последовательно или параллельно с некоторой задержкой
• Fling Animation — придает "физичность" спискам
когда мы быстро свайпаем список, а потом отрываем палец, список сначала быстро разгоняется, а потом медленно останавливается, как будто есть сопротивление воздуха
• Spring animation — придает "физичность" смахиваемым элементам
когда смахиваешь письмо в некоторых почтовых клиентах, оно немного пружинит, как будто отталкивается от соударения с краем экрана
• LottieAnimation — иногда дизайнерам легче скинуть готовый Lottie-файл с анимацией. нужна сторонняя библиотека
....
как дела с анимацией в Compose, все потребности уже закрыты?
Post #96
4.19K