Skip to content

Erweiterungen: Lottie & SVG

Skija bietet umfangreiche Unterstützung für beliebte Vektorformate wie Lottie (über Skottie) und SVG, sodass Sie komplexe Animationen und Icons einfach in Ihre Java-Anwendungen integrieren können.

Lottie-Animationen (Skottie)

Skottie ist Skias Lottie-Player. Es kann JSON-basierte Animationen laden und abspielen, die aus After Effects exportiert wurden.

Eine Animation laden

java
import io.github.humbleui.skija.skottie.Animation;

Animation anim = Animation.makeFromFile("assets/loader.json");

Abspielen und Rendern

Um eine Animation abzuspielen, müssen Sie zu einer bestimmten Zeit oder einem bestimmten Frame "springen" und sie dann auf eine Leinwand rendern.

java
// Normalisierte Zeit: 0.0 (Start) bis 1.0 (Ende)
anim.seek(currentTime); 

// Oder zu einem bestimmten Frame-Index springen
anim.seekFrame(24);

// In ein bestimmtes Rechteck auf der Leinwand rendern
anim.render(canvas, Rect.makeXYWH(0, 0, 200, 200));

SVG-Unterstützung

Skija stellt eine SVG-DOM bereit, die SVG-Dateien parsen und rendern kann.

SVG laden und rendern

java
import io.github.humbleui.skija.svg.SVGDOM;

Data data = Data.makeFromFileName("assets/icon.svg");
SVGDOM svg = new SVGDOM(data);

// Die Größe des Containers festlegen, in dem das SVG gerendert wird
svg.setContainerSize(100, 100);

// Auf die Leinwand zeichnen
svg.render(canvas);

Mit SVG interagieren

Sie können auf das Wurzelelement des SVGs zugreifen, um dessen Eigenschaften abzufragen, wie z.B. seine intrinsische Größe.

java
SVGSVG root = svg.getRoot();
Point size = root.getIntrinsicSize();

Wann was verwenden?

  • Lottie: Am besten für komplexe UI-Animationen, Charakteranimationen und ausdrucksstarke Übergänge.
  • SVG: Am besten für statische Icons, einfache Logos und Illustrationen.
  • Benutzerdefinierte Shader (SkSL): Am besten für prozedural generierte Hintergründe, Echtzeiteffekte und hochdynamische visuelle Darstellungen.