All publications
Motion & Animation

How ValueAnimator Makes Android's UI Dance

Choreographer, the main Looper, and what really happens under an Android animation.

Aug 24, 2024 · 10 min read · Preview
How ValueAnimator Makes Android's UI Dance

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.