Ich habe derzeit ein funktionierendes Android-Programm, das programmatisch Ansichten zu einem LinearLayout hinzufügt. Ich möchte, dass diese Ansichten animiert werden und keine guten Ressourcen finden, um herauszufinden, wie das geht.
Könnte mir jemand in die richtige Richtung zeigen?
Es ist eine sehr alte Frage, aber immer noch interessant: Sie können das Attribut android:animateLayoutChanges="true"
Zum Beispiel:
%Vor%Dies kann mit der API für Szenen und Übergänge erfolgen.
Framework gibt uns drei Transition
-Typen, die nicht im Lieferumfang enthalten sind: Fade
, Slide
und Explode
, aber Sie Sie können auch Ihren benutzerdefinierten Übergangstyp erstellen, indem Sie die Visibility
Klasse erweitern und geeignete Methoden überschreiben.
Wenn Sie also ViewGroup
haben, können wir Folgendes tun:
Wo meine_transition.xml folgt:
%Vor%Wir werden dieses Ergebnis erhalten:
Beachten Sie, dass wir TransitionManager.beginDelayedTransition()
bevor irgendeine Änderung am Layout vorgenommen wurde (dh bevor addView()
aufgerufen wird). Dann kümmert sich Framework um den Rest.
Es gibt noch eine weitere Überladung TransitionManager.beginDelayedTransition(ViewGroup)
, wo Sie nicht angeben müssen, welcher genaue Übergang angewendet werden soll, und das System führt AutoTransition
aus. Animation, die im Grunde die Grenzen der animierten Ansicht verblassen und verändern wird.
Aktualisieren Zusammenfassung aus der Konversation in Kommentaren
Framework TransitionManager
ist über API 19 verfügbar und wird vollständig von API 21 unterstützt ( indem ich vollständig sage, meine ich zB Slide
Übergang ist von API 21 verfügbar). Es ist zwar ein Supportpaket verfügbar , es werden jedoch nicht alle Funktionen rückportiert . Alternativ können Sie auch in die Bibliothek TransitionsEverywhere wechseln, die alles auf Android 4.0 zurückführt.
Versuchen Sie
1. Ansicht zum linearen Layout hinzufügen
%Vor% 2. Fügen Sie slide_up.xml
zu res/anim
Ordner
3. Animation direkt nach dem Hinzufügen der Ansicht anwenden
%Vor%Wenn Sie die Ansichten einzeln animieren möchten, verwenden Sie die folgenden Zeilen
%Vor%Tags und Links android android-layout animation android-animation android-view