EDIT 2: new official training guide
The Developers site released a training guide for UI related stuff, this is the index:
- Animations Overview
- Property Animation Overview
- Animate drawable graphics
- Reveal or hide a view using animation
- Move a View with Animation
- Move views using a fling animation
- Enlarge a view using a zoom animation
- Animate movement using spring physics
- Auto animate layout updates
- Animate layout changes using a transition
- Create a custom transition animation
- Start an activity using an animation
If you are interested in any of these, this is the link: https://developer.android.com/training/animation/
EDIT: Answers sum up
I found 5 ways to animate in Android:
Animate the properties of a
View
with Property Animation to smoothly changerotation
,alpha
,scale
etc.Frame Animations (AnimationDrawable): change the pictures quickly, so that it looks animated
Design the images with vectors (VectorDrawable) and animate them by editing them over time with AnimatedVectorDrawable.
Override
onDraw()
on aView
and perform Custom Drawing by painting in the canvas.Use Lottie, what reproduces animations from After Effects. Many animations available at LottieFiles.
However, Android provides some built-in tools too, such as Scenes
(that let you animate the transition among several layouts that share the Views
), Shared elements
(that lets you make the ilussion of passing a View
from one Activity
to another one) etc.
Many (if not all) of these features were added in API 21, click here here for more information.
Here are some interesting articles/blogs on animation:
A subcategory on a Google made website called material.io: Creative customization.
How we design a beautiful animation: train animation with animated vectors.
Animating to infinity: bluetooth animation with vectors
Frame Animations in Android: filling up a heart by images rotation.
Last, a couple interesting tools:
Note
I am aware Android provides transformations such as scale
, alpha
, rotate
, translation
etc.
Examples
There are 2 examples I would like to look at and compare.
1 - Custom View animations
For example, filling up a glass of water or drawing a path.
2 - Complex View animations
For instance, StackExchange App for Android, login screen animation (couldn't find a video on it, also, didn't check if behaves the same in iOS).
Question
For the first example, I can't think of any other way than playing GIFs, or manually changing images after little time periods.
I do not think this is the case, that's why I would like to ask, (1) do you know how it's done?
Regarding the second example, only one idea came to my mind, and that's setting a Path
and moving the View
accordingly by passing it somehow after animate()
. (2) Is this possible?
Apart from the mentioned above, (3) do you know of other techniques to play animations? (Such as Scene transitions
- mentioned in an answer-)
Please share! Thank you.