Die Animation Library erlaubt Views zu animieren
Diese kleinen Animationen sind wirklich nett und können sich positiv auf den Gesamteindruck der Anwendung auswirken.
Das Beispielprogramm befindet sich am Ende.
Das Englische OriginalTutorial.
Das Beispielprogramm demonstriert die verschiedenen zur Verfügung stehenden Animationen:
Alpha - Verursacht einen Fading in oder Fading out Effekt.
Scale – Die Größe der View wird sanft verändert.
Rotate – Die View wird gedreht.
Translate – Die View bewegt sich zu einer anderen Stelle.
Eine Animation wird in vier Etappen erstellt:
- Deklaration eines Animation Objekt
- Initialisierung des Objektes gemäß der gewollten Animation
- Setzen der Animation-Parameter (Dauer, Wiederholung und Wiederholungsmodus)
- Die Animation starten durch Aufruf von Start mit der ZielView.
In dem Programm wird eine Animationsart jedem Button als Tag-Wert zugefügt.
Alle Button_Click Events sind in der Sub Button_Click Routine abgefangen.
In dieser Subroutine holen wir die Animationsart vom Tag Parameter mit der Sender Funktion und starten die Animation.
Der Code der ersten fünf Animationen und Buttons:
Wir benutzen ein temporäres Array um zu vermeiden doppelten Code zu schreiben.
RepeatCount auf 1 setzen bedeutet daß jede Animation zweimal abgespielt wird.
REPEAT_REVERSE bedeutet, daß die jede zweite Animation rückwärts abgespielt wird.
Die Animation die Button6 zugefügt ist besteht aus 4 verketteten Animationen. Die Taste bewegt sich zu Erst nach unten, dann nach links, dann nach oben und dann nach rechts zurück zum Startpunkt.
Wir verwenden diese Animationen:
In diesem Fall wollen wir nicht daß jede Animation wiederholt wird.
Starten der Animationen:
Der letzte Teil ist die Nutzung des AnimationEnd Events um die nächste Animation für den Button6 zu starten:
Dieses Programm sieht, einem realen Gerät, wirklich toll aus. Es funktioniert auch auf dem Emulator, aber die Animationen sind weniger sanft.
Sourcodes:
AnimationExample.zip
Animation.apk
Diese kleinen Animationen sind wirklich nett und können sich positiv auf den Gesamteindruck der Anwendung auswirken.
Das Beispielprogramm befindet sich am Ende.
Das Englische OriginalTutorial.
Das Beispielprogramm demonstriert die verschiedenen zur Verfügung stehenden Animationen:
Alpha - Verursacht einen Fading in oder Fading out Effekt.
Scale – Die Größe der View wird sanft verändert.
Rotate – Die View wird gedreht.
Translate – Die View bewegt sich zu einer anderen Stelle.
Eine Animation wird in vier Etappen erstellt:
- Deklaration eines Animation Objekt
- Initialisierung des Objektes gemäß der gewollten Animation
- Setzen der Animation-Parameter (Dauer, Wiederholung und Wiederholungsmodus)
- Die Animation starten durch Aufruf von Start mit der ZielView.
In dem Programm wird eine Animationsart jedem Button als Tag-Wert zugefügt.
Alle Button_Click Events sind in der Sub Button_Click Routine abgefangen.
In dieser Subroutine holen wir die Animationsart vom Tag Parameter mit der Sender Funktion und starten die Animation.
Der Code der ersten fünf Animationen und Buttons:
B4X:
Dim a1, a2, a3, a4, a5 As Animation
Activity.LoadLayout("1")
a1.InitializeAlpha("", 1, 0)
Button1.Tag = a1
a2.InitializeRotate("", 0, 180)
Button2.Tag = a2
a3.InitializeRotateCenter("", 0, 180, Button3)
Button3.Tag = a3
a4.InitializeScale("", 1, 1, 0, 0)
Button4.Tag = a4
a5.InitializeScaleCenter("", 1, 1, 0, 0, Button4)
Button5.Tag = a5
Dim animations() As Animation
animations = Array As Animation(a1, a2, a3, a4, a5)
For i = 0 To animations.Length - 1
animations(i).Duration = 1000
animations(i).RepeatCount = 1
animations(i).RepeatMode = animations(i).REPEAT_REVERSE
Next
RepeatCount auf 1 setzen bedeutet daß jede Animation zweimal abgespielt wird.
REPEAT_REVERSE bedeutet, daß die jede zweite Animation rückwärts abgespielt wird.
Die Animation die Button6 zugefügt ist besteht aus 4 verketteten Animationen. Die Taste bewegt sich zu Erst nach unten, dann nach links, dann nach oben und dann nach rechts zurück zum Startpunkt.
Wir verwenden diese Animationen:
B4X:
a6.InitializeTranslate("Animation", 0, 0, 0dip, 200dip) 'we want to catch the AnimationEnd event for these animations
a7.InitializeTranslate("Animation", 0dip, 200dip, -200dip, 200dip)
a8.InitializeTranslate("Animation", -200dip, 200dip, -200dip, 0dip)
a9.InitializeTranslate("Animation", -200dip, 0dip, 0dip, 0dip)
Button6.Tag = a6
animations = Array As Animation(a6, a7, a8, a9)
For i = 0 To animations.Length - 1
animations(i).Duration = 500
Next
Starten der Animationen:
B4X:
Sub Button_Click
Dim b As Button
b = Sender
'Safety check. Not really required in this case.
If Not(b.Tag Is Animation) Then Return
Dim a As Animation
a = b.Tag
a.Start(b)
End Sub
B4X:
Sub Animation_AnimationEnd
If Sender = a6 Then
a7.Start(Button6)
Else If Sender = a7 Then
a8.Start(Button6)
Else If Sender = a8 Then
a9.Start(Button6)
End If
End Sub
Sourcodes:
Animation.apk
Last edited: