Skip to content

APIリファレンス: アニメーション (Skottie)

Animationクラス(io.github.humbleui.skija.skottie内)は、Lottieアニメーションの読み込みとレンダリングをサポートします。

概要

SkottieはSkia用の高性能なLottieプレーヤーです。Animationクラスを使用すると、ファイル、文字列、またはデータからLottieアニメーションを読み込み、特定のフレームをCanvasにレンダリングできます。

作成

  • makeFromString(data): JSON文字列からAnimationを作成します。
  • makeFromFile(path): ファイルパスからAnimationを作成します。
  • makeFromData(data): DataオブジェクトからAnimationを作成します。

レンダリング

  • render(canvas): 現在のフレームをアニメーションの自然なサイズで(0, 0)にキャンバスに描画します。
  • render(canvas, offset): 指定された(x, y)オフセットに現在のフレームを描画します。
  • render(canvas, left, top): 指定された座標に現在のフレームを描画します。
  • render(canvas, dst, renderFlags): 現在のフレームを宛先のRectにスケーリングして描画します。

再生制御

特定のフレームをレンダリングするには、まずそのフレームにシークする必要があります。

  • seek(t): 正規化された時間t(範囲[0..1])にシークします。
  • seek(t, ic): InvalidationControllerを使用して正規化された時間tにシークします。
  • seekFrame(t): 特定のフレームインデックスtduration * fpsに対する相対値)にシークします。
  • seekFrameTime(t): 特定の時間t(秒単位)にシークします。

プロパティ

  • getDuration(): アニメーションの総時間を秒単位で返します。
  • getFPS(): フレームレート(1秒あたりのフレーム数)を返します。
  • getInPoint(): インポイント(開始フレーム)をフレームインデックス単位で返します。
  • getOutPoint(): アウトポイント(終了フレーム)をフレームインデックス単位で返します。
  • getVersion(): Lottieのバージョン文字列を返します。
  • getSize(): アニメーションの自然なサイズをPointとして返します。
  • getWidth(): アニメーションの幅を返します。
  • getHeight(): アニメーションの高さを返します。

java
// リソースまたはファイルシステムからアニメーションを読み込む
try (var anim = Animation.makeFromFile("loading.json")) {
    
    // アニメーション情報を取得
    float duration = anim.getDuration(); // 秒単位
    float width = anim.getWidth();
    float height = anim.getHeight();

    // レンダリングの準備
    anim.seek(0.5f); // アニメーションの中間点(50%)に移動

    // キャンバスにレンダリング
    // Canvasインスタンス 'canvas' があることを前提
    canvas.save();
    canvas.translate(100, 100); // アニメーションの位置を設定
    anim.render(canvas);
    canvas.restore();
}