Einführung in Animationen

Funktion „Schreiben“ ausprobieren
Jetpack Compose ist das empfohlene UI-Toolkit für Android. Hier erfahren Sie, wie Sie Animationen in Compose verwenden.

Animationen können visuelle Hinweise hinzufügen, die Nutzer über die Vorgänge in Ihrer App informieren. Sie sind besonders nützlich, wenn sich der Status der Benutzeroberfläche ändert, z. B. wenn neue Inhalte geladen oder neue Aktionen verfügbar werden. Animationen verleihen Ihrer App auch einen edlen Look und verleihen ihr ein besseres Erscheinungsbild.

Android verfügt über verschiedene Animations-APIs, je nachdem, welche Art von Animation Sie wünschen. Diese Dokumentation bietet einen Überblick über die verschiedenen Möglichkeiten zum Hinzufügen von Bewegungen zu Ihrer UI.

Weitere Informationen dazu, wann du Animationen verwenden solltest, findest du im Material Design-Leitfaden zu Bewegungen.

Bitmaps animieren

Abbildung 1: Ein animiertes Drawable.

Wenn du eine Bitmapgrafik animieren möchtest, z. B. ein Symbol oder eine Illustration, kannst du die Drawable-Animations-APIs verwenden. Normalerweise werden diese Animationen statisch mit einer Drawable-Ressource definiert. Sie können aber auch das Animationsverhalten zur Laufzeit definieren.

Eine ansprechende Möglichkeit, dem Nutzer zu vermitteln, dass zwei Aktionen in Zusammenhang stehen, besteht beispielsweise darin, eine Wiedergabeschaltfläche zu animieren, die sich beim Antippen in eine Pausenschaltfläche verwandelt.

Weitere Informationen findest du unter Drawable-Grafiken animieren.

Animieren Sie die Sichtbarkeit und Bewegung der Benutzeroberfläche.

Abbildung 2: Durch eine subtile Animation beim Ein- und Ausblenden eines Dialogfelds sind Änderungen an der Benutzeroberfläche weniger irritierend.

Wenn Sie die Sichtbarkeit oder Position von Ansichten in Ihrem Layout ändern müssen, sollten Sie subtile Animationen verwenden, damit der Nutzer nachvollziehen kann, wie sich die Benutzeroberfläche ändert.

Zum Verschieben, Einblenden oder Ausblenden von Ansichten im aktuellen Layout können Sie das Property-Animationssystem aus dem Paket android.animation verwenden, das ab Android 3.0 (API-Level 11) verfügbar ist. Diese APIs aktualisieren die Attribute Ihrer View-Objekte über einen bestimmten Zeitraum. Die Ansicht wird dabei kontinuierlich neu erstellt, wenn sich die Attribute ändern. Wenn Sie beispielsweise die Positionseigenschaften ändern, bewegt sich die Ansicht über den Bildschirm. Wenn Sie die Alpha-Eigenschaft ändern, wird die Ansicht ein- oder ausgeblendet.

Die einfachste Methode zum Erstellen dieser Animationen ist, Animationen in Ihrem Layout zu aktivieren. Wenn Sie dann die Sichtbarkeit einer Ansicht ändern, wird eine Animation automatisch angewendet. Weitere Informationen finden Sie unter Layoutupdates automatisch animieren.

Informationen zum Erstellen von Animationen mit dem Eigenschaftsanimationssystem finden Sie in der Übersicht über die Eigenschaftsanimation. Auf den folgenden Seiten können Sie gängige Animationen erstellen:

Physikbasierte Bewegung

Abbildung 3: Mit ObjectAnimator erstellte Animation.

Abbildung 4: Animationen, die mit physikbasierten APIs erstellt wurden.

Verwenden Sie nach Möglichkeit die Physik der realen Welt auf Ihre Animationen, damit sie natürlich aussehen. Beispielsweise sollten sie die Dynamik beibehalten, wenn sich ihr Ziel ändert, und bei allen Änderungen reibungslose Übergänge machen.

Um diese Verhaltensweisen bereitzustellen, enthält die Android-Supportbibliothek physikbasierte Animations-APIs, die auf physikalischen Gesetzen basieren, um zu steuern, wie Ihre Animationen abgespielt werden.

Zwei gängige physikbasierte Animationen sind:

Animationen, die nicht auf Physik basieren, wie solche, die mit ObjectAnimator APIs erstellt werden, sind ziemlich statisch und haben eine feste Dauer. Wenn sich der Zielwert ändert, müssen Sie die Animation zum Zeitpunkt der Zielwertänderung abbrechen, die Animation mit einem neuen Wert als neuen Startwert neu konfigurieren und den neuen Zielwert hinzufügen. Visuell führt dieser Prozess zu einem abrupten Stopp der Animation und einer unzusammenhängenden Bewegung danach, wie in Abbildung 3 dargestellt.

Animationen, die mit physikbasierten Animations-APIs wie DynamicAnimation erstellt wurden, werden durch Kraft angetrieben. Die Änderung des Zielwerts führt zu einer Änderung in Kraft. Die neue Kraft wird auf die vorhandene Geschwindigkeit angewendet, wodurch ein kontinuierlicher Übergang zum neuen Ziel erfolgt. Dieser Prozess führt zu einer natürlicher wirkenden Animation, wie in Abbildung 4 gezeigt.

Layoutänderungen animieren

Abbildung 5: Eine Animation mit weiteren Details kann erreicht werden, indem entweder das Layout geändert oder eine neue Aktivität gestartet wird.

Unter Android 4.4 (API-Level 19) und höher können Sie mit dem Übergangs-Framework Animationen erstellen, wenn Sie das Layout innerhalb der aktuellen Aktivität oder des Fragments austauschen. Sie müssen nur das Start- und Endlayout und die Art der Animation festlegen, die Sie verwenden möchten. Dann ermittelt das System eine Animation und führt diese zwischen den beiden Layouts aus. Sie können damit die gesamte Benutzeroberfläche austauschen oder nur einige Ansichten verschieben oder ersetzen.

Wenn der Nutzer beispielsweise auf ein Element tippt, um weitere Informationen zu sehen, können Sie das Layout durch die Elementdetails ersetzen und einen Übergang wie in Abbildung 5 anwenden.

Das Start- und das Endlayout werden jeweils in einem Scene gespeichert. Die Startszene wird jedoch normalerweise automatisch aus dem aktuellen Layout ermittelt. Sie erstellen eine Transition, um dem System mitzuteilen, welche Art von Animation Sie wünschen. Dann rufen Sie TransitionManager.go() auf und das System führt die Animation aus, um die Layouts auszutauschen.

Weitere Informationen finden Sie unter Layoutänderungen mit einem Übergang animieren. Beispielcode finden Sie unter BasicTransition.

Zwischen Aktivitäten animieren

Unter Android 5.0 (API-Level 21) und höher können Sie auch Animationen erstellen, die zwischen Ihren Aktivitäten wechseln. Dies basiert auf demselben Übergangsframework wie im vorherigen Abschnitt beschrieben, aber Sie können damit in separaten Aktivitäten Animationen zwischen Layouts erstellen.

Sie können einfache Animationen anwenden, z. B. indem Sie die neue Aktivität von der Seite ein- oder einblenden. Sie können aber auch Animationen erstellen, die bei jeder Aktivität zwischen den geteilten Ansichten wechseln. Wenn der Nutzer beispielsweise auf ein Element tippt, um weitere Informationen zu sehen, können Sie in eine neue Aktivität mit einer Animation übergehen, die dieses Element nahtlos vergrößert, damit es den Bildschirm füllt, wie in Abbildung 5 dargestellt.

Wie gewohnt rufen Sie startActivity() auf, übergeben aber eine Reihe von Optionen, die von ActivityOptions.makeSceneTransitionAnimation() bereitgestellt werden. Dieses Set von Optionen kann enthalten, welche Ansichten von den Aktivitäten gemeinsam genutzt werden, damit das Übergangs-Framework sie während der Animation verbinden kann.

Weitere Informationen finden Sie unter: