ビューでレイヤベースのアニメーションを使用すると、パフォーマンスが向上し、
設定がむずかしいこともあります。「
AnimationBuilder
レイヤの読みやすさを大幅に向上させ、
作成できます。
次の 2 つの間で連続的なクロスフェードをアニメーション化する必要があるとします。 ビューを示しています。
レイヤ アニメーション API を直接使用してこの処理を行う例を次に示します。
auto primary_title_sequence = std::make_unique<LayerAnimationSequence>();
auto working_sequence = std::make_unique<LayerAnimationSequence>();
primary_title_sequence->set_is_repeating(true);
working_sequence->set_is_repeating(true);
primary_title_sequence->AddElement(CreatePauseElement(OPACITY, base::Seconds(2)));
primary_title_sequence->AddElement(CreateOpacityElement(0.0f, base::Seconds(1)));
primary_title_sequence->AddElement(CreatePauseElement(OPACITY, base::Seconds(2)));
primary_title_sequence->AddElement(CreateOpacityElement(1.0f, base::Seconds(1)));
working_sequence->AddElement(CreatePauseElement(OPACITY, base::Seconds(2)));
working_sequence->AddElement(CreateOpacityElement(1.0f, base::Seconds(1)));
working_sequence->AddElement(CreatePauseElement(OPACITY, base::Seconds(2)));
working_sequence->AddElement(CreateOpacityElement(0.0f, base::Seconds(1)));
primary_title_->layer()->GetAnimator()->StartAnimation(primary_title_sequence.release());
working_->layer()->GetAnimator()->StartAnimation(working_sequence.release());
以下は、AnimationBuilder
を使用して同じエフェクトを作成する方法を示しています。
アニメーションはスコープから出ると開始されます。
AnimationBuilder()
.Repeatedly()
.Offset(base::Seconds(2))
.SetDuration(base::Seconds(1))
.SetOpacity(primary_title_, 0.0f)
.SetOpacity(working_, 1.0f)
.Offset(base::Seconds(2))
.SetDuration(base::Seconds(1))
.SetOpacity(primary_title_, 1.0f)
.SetOpacity(working_, 0.0f);
記述するコードまたは読み取りたいコードはどちらですか?さらに重要なこととして、AnimationBuilder
があります。
アニメーションにオーバーヘッドを追加しません。これは、
レイヤベースのアニメーションを作成できます。次回必要なときにお試しください
アニメーション化できます。
ご不明な点がございましたら、 chromium-dev@chromium.org を取得しています。