Kapitel 15 – Animationen
Zur Navigation springen
Zur Suche springen
| LVGL 9 mit MicroPython | |
|---|---|
| Kapitel | 15 |
| Titel | Animationen |
| Voraussetzungen | Grundkenntnisse in MicroPython |
| Getestet mit | LVGL 9.x |
| Schwierigkeitsgrad | ★★★★☆ |
| Benötigte Zeit | 50 Minuten |
| Status | in Arbeit |
Kapitel 15 – Animationen[Bearbeiten | Quelltext bearbeiten]
Lernziel[Bearbeiten | Quelltext bearbeiten]
Nach diesem Kapitel kannst du
- einfache Animationen erstellen,
- Werte über Zeit verändern,
- UI-Elemente bewegen und verändern,
- weiche Übergänge in LVGL nutzen.
Was ist eine Animation?[Bearbeiten | Quelltext bearbeiten]
Eine Animation verändert einen Wert über die Zeit.
Beispiele:
- Position eines Buttons
- Größe eines Widgets
- Farbe eines Elements
- Transparenz
Grundprinzip[Bearbeiten | Quelltext bearbeiten]
Eine Animation besteht aus:
- Objekt (was animiert wird)
- Eigenschaft (was sich ändert)
- Startwert
- Endwert
- Dauer
Einfaches Beispiel[Bearbeiten | Quelltext bearbeiten]
import lvgl as lv
scr = lv.screen_active()
label = lv.label(scr)
label.set_text("Animation")
label.align(lv.ALIGN.LEFT_MID, 10, 0)Animation erstellen[Bearbeiten | Quelltext bearbeiten]
def anim_x(obj, v):
obj.set_x(v)a = lv.anim_t()
a.init()
a.set_var(label)
a.set_values(10, 200)
a.set_time(1000)
a.set_exec_cb(anim_x)
lv.anim_t.start(a)Erklärung[Bearbeiten | Quelltext bearbeiten]
- set_var → Objekt, das animiert wird
- set_values → Start- und Endwert
- set_time → Dauer in Millisekunden
- set_exec_cb → Funktion, die ausgeführt wird
Ergebnis[Bearbeiten | Quelltext bearbeiten]
Das Label bewegt sich horizontal über den Bildschirm.
Animation: Größe ändern[Bearbeiten | Quelltext bearbeiten]
def anim_w(obj, v):
obj.set_width(v)
a = lv.anim_t()
a.init()
a.set_var(label)
a.set_values(50, 200)
a.set_time(800)
a.set_exec_cb(anim_w)
lv.anim_t.start(a)Animation: Transparenz[Bearbeiten | Quelltext bearbeiten]
def anim_opa(obj, v):
obj.set_style_opa(v, 0)
a = lv.anim_t()
a.init()
a.set_var(label)
a.set_values(0, 255)
a.set_time(1000)
a.set_exec_cb(anim_opa)
lv.anim_t.start(a)Wichtiger Hinweis[Bearbeiten | Quelltext bearbeiten]
Hinweis
Viele Eigenschaften können nur über Styles animiert werden.
Direkte Animation funktioniert nur bei einfachen Werten wie Position oder Größe.
Typischer Fehler[Bearbeiten | Quelltext bearbeiten]
Achtung
Animationen funktionieren nur, wenn das Objekt existiert.
Wird das Objekt gelöscht, bricht die Animation ab.
Beispiel: Button Animation[Bearbeiten | Quelltext bearbeiten]
btn = lv.button(scr)
btn.align(lv.ALIGN.CENTER, 0, 0)
def move(obj, v):
obj.set_x(v)
a = lv.anim_t()
a.init()
a.set_var(btn)
a.set_values(0, 150)
a.set_time(1200)
a.set_exec_cb(move)
lv.anim_t.start(a)Anwendung[Bearbeiten | Quelltext bearbeiten]
Animationen werden verwendet für:
- Übergänge zwischen Screens
- Menüs
- Ladeanzeigen
- visuelle Rückmeldungen
- moderne UI-Effekte
Merke[Bearbeiten | Quelltext bearbeiten]
Merke
Eine Animation verändert einen Wert kontinuierlich über die Zeit.
Zusammenfassung[Bearbeiten | Quelltext bearbeiten]
- Animationen verändern Werte über Zeit
- Sie benötigen eine Callback-Funktion
- Typische Werte sind Position, Größe und Transparenz
- Animationen verbessern die UI-Qualität deutlich