Animationen können visuelle Hinweise liefern, die Nutzer darüber informieren, was in Ihrer App passiert. Sie sind besonders nützlich, wenn sich der Status der Benutzeroberfläche ändert, z. B. wenn neue Inhalte geladen werden oder neue Aktionen verfügbar sind. Animationen verleihen Ihrer App außerdem ein professionelles Aussehen und sorgen für eine höhere Qualität.
Android bietet verschiedene Animations-APIs an, je nachdem, welche Art von Animation Sie verwenden möchten. Diese Dokumentation bietet einen Überblick über die verschiedenen Möglichkeiten, Ihrer Benutzeroberfläche Bewegung hinzuzufügen.
Weitere Informationen dazu, wann Sie Animationen verwenden sollten, finden Sie auch im Material Design-Leitfaden zu Bewegung.
Bitmaps animieren
Abbildung 1: Ein animiertes Drawable.
Wenn Sie eine Bitmap-Grafik wie ein Symbol oder eine Illustration animieren möchten, verwenden Sie die APIs für Drawable-Animationen. Normalerweise werden diese Animationen statisch mit einer Drawable-Ressource definiert. Sie können das Animationsverhalten aber auch zur Laufzeit definieren.
Eine gute Möglichkeit, dem Nutzer zu vermitteln, dass zwei Aktionen zusammenhängen, ist beispielsweise, eine Wiedergabeschaltfläche zu animieren, die sich in eine Pausenschaltfläche verwandelt, wenn darauf getippt wird.
Weitere Informationen finden Sie unter Zeichenbare Grafiken animieren.
UI-Sichtbarkeit und Bewegung animieren
Abbildung 2: Eine dezente Animation beim Ein- und Ausblenden von Dialogfeldern sorgt für einen weniger abrupten Übergang.
Wenn Sie die Sichtbarkeit oder Position von Ansichten in Ihrem Layout ändern müssen, sollten Sie dezente Animationen einfügen, damit der Nutzer nachvollziehen kann, wie sich die Benutzeroberfläche ändert.
Um Ansichten im aktuellen Layout zu verschieben, ein- oder auszublenden, können Sie das Property-Animationssystem verwenden, das vom Paket android.animation
bereitgestellt wird und in Android 3.0 (API-Level 11) und höher verfügbar ist. Mit diesen APIs werden die Attribute Ihrer View
-Objekte im Laufe der Zeit aktualisiert. Die Ansicht wird dabei kontinuierlich neu gezeichnet, wenn sich die Attribute ändern. Wenn Sie beispielsweise die Positionseigenschaften ändern, bewegt sich die Ansicht über den Bildschirm. Wenn Sie die Alpha-Property ändern, wird die Ansicht ein- oder ausgeblendet.
Am einfachsten erstellen Sie diese Animationen, indem Sie Animationen für Ihr Layout aktivieren. Wenn Sie dann die Sichtbarkeit einer Ansicht ändern, wird automatisch eine Animation angewendet. Weitere Informationen finden Sie unter Layout-Updates automatisch animieren.
Informationen zum Erstellen von Animationen mit dem Attributanimationssystem finden Sie unter Attributanimation – Übersicht. Auf den folgenden Seiten finden Sie Informationen zum Erstellen häufig verwendeter Animationen:
Physikbasierte Bewegung
Abbildung 3: Mit ObjectAnimator erstellte Animation.
Abbildung 4: Mit physikbasierten APIs erstellte Animation.
Wenden Sie nach Möglichkeit die Gesetze der Physik auf Ihre Animationen an, damit sie natürlich aussehen. Sie sollten beispielsweise den Schwung beibehalten, wenn sich das Ziel ändert, und für reibungslose Übergänge bei Änderungen sorgen.
Dazu enthält die Android-Supportbibliothek physikbasierte Animations-APIs, die auf den Gesetzen der Physik beruhen, um zu steuern, wie Ihre Animationen ablaufen.
Zwei gängige physikbasierte Animationen sind:
Animationen, die nicht auf Physik basieren, z. B. solche, die mit ObjectAnimator
-APIs erstellt wurden, sind relativ statisch und haben eine feste Dauer. Wenn sich der Zielwert ändert, müssen Sie die Animation zum Zeitpunkt der Änderung des Zielwerts 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 in der Animation und einer unzusammenhängenden Bewegung danach, wie in Abbildung 3 dargestellt.
Animationen, die mit physikbasierten Animations-APIs wie DynamicAnimation
erstellt werden, werden durch Kraft gesteuert. Die Änderung des Zielwerts führt zu einer Änderung der Kraft. Die neue Kraft wird auf die vorhandene Geschwindigkeit angewendet, was einen kontinuierlichen Übergang zum neuen Ziel ermöglicht. Dieser Prozess führt zu einer natürlicheren Animation, wie in Abbildung 4 dargestellt.
Layoutänderungen animieren
Abbildung 5: Eine Animation, um weitere Details anzuzeigen, kann entweder durch Ändern des Layouts oder durch Starten einer neuen Aktivität erreicht werden.
Unter Android 4.4 (API-Level 19) und höher können Sie mit dem Übergangs-Framework Animationen erstellen, wenn Sie das Layout in der aktuellen Aktivität oder dem aktuellen Fragment tauschen. Sie müssen nur das Start- und Endlayout sowie den gewünschten Animationstyp angeben. Das System berechnet und führt dann eine Animation zwischen den beiden Layouts aus. Damit können Sie 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 dabei einen Übergang wie in Abbildung 5 verwenden.
Das Start- und das Endlayout werden jeweils in einem Scene
gespeichert. Die Startszene wird jedoch in der Regel automatisch aus dem aktuellen Layout bestimmt. Sie erstellen ein Transition
, um dem System mitzuteilen, welche Art von Animation Sie wünschen, rufen dann TransitionManager.go()
auf und das System führt die Animation aus, um die Layouts zu tauschen.
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 den Übergang zwischen Ihren Aktivitäten darstellen. Dies basiert auf demselben Übergangs-Framework, das im vorherigen Abschnitt beschrieben wird. Damit können Sie jedoch Animationen zwischen Layouts in separaten Aktivitäten erstellen.
Sie können einfache Animationen wie das Einblenden der neuen Aktivität von der Seite oder das Einblenden der Aktivität verwenden, aber auch Animationen erstellen, die zwischen freigegebenen Ansichten in jeder Aktivität wechseln. Wenn der Nutzer beispielsweise auf ein Element tippt, um weitere Informationen zu sehen, können Sie mit einer Animation in eine neue Aktivität übergehen, bei der das Element nahtlos vergrößert wird, um den Bildschirm auszufüllen. Ein Beispiel dafür sehen Sie in Abbildung 5.
Wie gewohnt rufen Sie startActivity()
auf, übergeben aber ein Options-Bundle, das von ActivityOptions.makeSceneTransitionAnimation()
bereitgestellt wird.
Dieses Optionspaket kann enthalten, welche Ansichten zwischen den Aktivitäten geteilt werden, damit das Übergangs-Framework sie während der Animation verbinden kann.
Weitere Informationen finden Sie unter: