РЕДАКТИРОВАТЬ: сумма ответов
Я нашел 5 способов анимации в Android:
-
Анимируйте свойства
View
с Property Animation, чтобы плавно изменитьrotation
,alpha
,scale
и т.д. -
Анимация кадров (AnimationDrawable): быстро меняйте фотографии, чтобы они выглядели анимированный
-
Создайте изображения с векторами (VectorDrawable) и анимация их редактируя их со временем AnimatedVectorDrawable.
-
Переопределить
onDraw()
наView
и выполнить Пользовательский чертеж, покрасив в холст. -
Используйте Lottie, что воспроизводит анимацию After Effects. Многие анимации доступны в LottieFiles.
Тем не менее, Android предоставляет некоторые встроенные инструменты, например Scenes
(который позволяет вам анимировать переход между несколькими макетами, разделяющими Views
), Shared elements
(это позволяет вам выполнить прохождение View
от одного Activity
к другому) и т.д.
Многие (если не все) из этих функций были добавлены в API 21, нажмите здесь здесь для получения дополнительной информации.
Вот несколько интересных статей/блогов по анимации:
-
Подкатегория на веб-сайте Google, называемая material.io: Творческая настройка.
-
Как мы создаем красивую анимацию: анимация поезда с анимированными векторами.
-
Анимация до бесконечности: анимация bluetooth с векторами
-
Анимация кадров в Android: заполнение сердца вращением изображений.
Наконец, несколько интересных инструментов:
Примечание
Я знаю, что Android предоставляет такие преобразования, как scale
, alpha
, rotate
, translation
и т.д.
Примеры
Есть два примера, которые я хотел бы посмотреть и сравнить.
1 - анимация пользовательского просмотра
Например, заполнение стакана воды или рисунок путь.
2 - анимация комплексного просмотра
Например, приложение StackExchange для Android, анимация экрана входа в систему (не удалось найти видео на нем, также не проверял, ведет ли он себя в iOS).
Вопрос
В первом примере я не могу думать ни о каком другом способе, кроме как играть в GIF или вручную менять изображения через небольшие промежутки времени.
Я не думаю, что это так, поэтому я хотел бы спросить: (1) вы знаете, как это делается?
Что касается второго примера, мне пришла в голову только одна идея и установка Path
и перемещение View
соответственно, передав ее как-то после animate()
. (2) Возможно ли это?
Помимо упомянутого выше, (3) знаете ли вы другие методы воспроизведения анимаций? (Например, Scene transitions
- упомянутый в ответе -)
Пожалуйста, поделитесь! Спасибо.