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): 特定のフレームインデックスt(duration * 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();
}