Animationen können visuelle Hinweise hinzufügen, 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 Erscheinungsbild, das sie hochwertiger wirken lässt.
Android bietet verschiedene Animation APIs, je nachdem, welche Art von Animation Sie verwenden möchten. In dieser Dokumentation finden Sie eine Übersicht über die verschiedenen Möglichkeiten, wie Sie Ihrer Benutzeroberfläche Bewegung hinzufügen können.
Weitere Informationen dazu, wann Sie Animationen verwenden sollten, finden Sie im Material Design-Leitfaden zu Bewegungen.
Bitmaps animieren
Abbildung 1. Ein animiertes Drawable.
Wenn Sie eine Bitmap-Grafik wie ein Symbol oder eine Illustration animieren möchten, verwenden Sie die Drawable Animation APIs. Normalerweise werden diese Animationen statisch mit einer zeichenfähigen Ressource definiert. Sie können das Animationsverhalten aber auch zur Laufzeit definieren.
Eine gute Möglichkeit, dem Nutzer mitzuteilen, dass zwei Aktionen zusammenhängen, ist beispielsweise, einen Wiedergabe-Button zu animieren, der sich beim Antippen in einen Pause-Button verwandelt.
Weitere Informationen finden Sie unter Drawable-Grafiken animieren.
Sichtbarkeit und Bewegung der Benutzeroberfläche animieren
Abbildung 2: Eine subtile Animation, wenn ein Dialogfeld ein- und ausgeblendet wird, macht die Änderung der Benutzeroberfläche weniger abrupt.
Wenn du die Sichtbarkeit oder Position von Ansichten in deinem Layout ändern musst, solltest du dezente Animationen einfügen, damit der Nutzer die Änderungen an der Benutzeroberfläche nachvollziehen kann.
Wenn Sie Ansichten im aktuellen Layout verschieben, einblenden oder ausblenden möchten, können Sie das Property-Animationssystem aus dem Paket android.animation verwenden, das in Android 3.0 (API-Level 11) und höher verfügbar ist. Diese APIs aktualisieren die Eigenschaften Ihrer View-Objekte über einen bestimmten Zeitraum und zeichnen die Ansicht kontinuierlich neu, wenn sich die Eigenschaften ä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 Möglichkeit, diese Animationen zu erstellen, besteht darin, Animationen für Ihr Layout zu aktivieren. Wenn Sie dann die Sichtbarkeit einer Ansicht ändern, wird automatisch eine Animation angewendet. Weitere Informationen finden Sie unter Layoutaktualisierungen automatisch animieren.
Informationen zum Erstellen von Animationen mit dem Attributanimationssystem finden Sie in der Übersicht über Attributanimationen. Auf den folgenden Seiten finden Sie Informationen zum Erstellen gängiger Animationen:
Physikbasierte Bewegung
Abbildung 3: Mit ObjectAnimator erstellte Animation.
Abbildung 4: Animation, die mit physikbasierten APIs erstellt wurde.
Wenden Sie nach Möglichkeit die reale Physik auf Ihre Animationen an, damit sie natürlich wirken. Sie sollten beispielsweise die Dynamik beibehalten, wenn sich ihr Ziel ändert, und bei allen Änderungen für reibungslose Übergänge sorgen.
Um diese Verhaltensweisen zu ermöglichen, enthält die Android Support Library physikbasierte Animations-APIs, die die Gesetze der Physik nutzen, 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 ziemlich 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 neuem 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 wurden, 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 zu einem kontinuierlichen Übergang zum neuen Ziel führt. Dieser Prozess führt zu einer natürlicher wirkenden Animation, wie in Abbildung 4 dargestellt.
Layoutänderungen animieren
Abbildung 5: Eine Animation, die mehr Details zeigt, 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 das Übergangs-Framework verwenden, um Animationen zu erstellen, wenn Sie das Layout innerhalb der aktuellen Aktivität oder des aktuellen Fragments ändern. Sie müssen nur das Start- und Endlayout sowie den gewünschten Animationstyp angeben. Dann berechnet das System eine Animation zwischen den beiden Layouts und führt sie 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 einen Übergang wie in Abbildung 5 gezeigt anwenden.
Das Start- und das Endlayout werden jeweils in einer Scene gespeichert. Die Startszene wird jedoch in der Regel automatisch aus dem aktuellen Layout ermittelt. Sie erstellen ein Transition, um dem System mitzuteilen, welche Art von Animation Sie wünschen, und rufen dann TransitionManager.go() auf. 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.
Animationen zwischen Aktivitäten
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 Übergangs-Framework, das im vorherigen Abschnitt beschrieben wurde, ermöglicht es Ihnen jedoch, Animationen zwischen Layouts in separaten Aktivitäten zu erstellen.
Du kannst einfache Animationen anwenden, z. B. die neue Aktivität von der Seite einblenden oder einblenden lassen. Du kannst 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, kannst du mit einer Animation, die das Element nahtlos vergrößert, bis es den Bildschirm ausfüllt, zu einer neuen Aktivität wechseln, wie in Abbildung 5 dargestellt.
Wie gewohnt rufen Sie startActivity() auf, übergeben aber ein Bundle mit Optionen, die von ActivityOptions.makeSceneTransitionAnimation() bereitgestellt werden.
Dieses Optionspaket kann enthalten, welche Ansichten zwischen den Aktivitäten geteilt werden, damit das Übergangs-Framework sie während der Animation verbinden kann.
Weitere Ressourcen: