All publications
Motion & Animation
How ValueAnimator Makes Android's UI Dance
Choreographer, the main Looper, and what really happens under an Android animation.
Summary
Every Android animation rides on the same hidden machinery. This article follows a single ValueAnimator from start() to the screen — through the Choreographer's frame callbacks and the main Looper — and then rebuilds a tiny animator by hand so the magic stops being magic.
What actually moves a view? This article traces an animation from start() to pixels — the Choreographer, the Looper, interpolators — then rebuilds a minimal animator from scratch to prove there’s no magic, only good design.
Key ideas
- 01 Animations are driven by the Choreographer's per-frame callbacks, synced to the display.
- 02 The main Looper is the heartbeat that schedules every UI update.
- 03 Interpolators and evaluators separate timing from the values being animated.
- 04 You can build a working custom animator with surprisingly little code.