2

3つの異なるアニメーションを実行するAnimationSetがあります。アニメーションが終了した後、すべてが開始位置にスナップバックする前に、アプリを3秒間一時停止したいと思います。

それ、どうやったら出来るの ?

4

2 に答える 2

2

さて、animation.hasEnded()アニメーションが終了したかどうかをテストするために使用できる関数があります。それがtrueを返す場合、Javaタイマーを使用して、待機したいミリ秒数の後にタスクをスケジュールできます。AnimationSetには、アニメーションの継続時間を取得する関数もあります。

見てみましょう... アニメーションAnimationSet

于 2012-06-19T22:18:39.177 に答える
1

AnimationListener Set one を使用して、アニメーションが終了したときにコールバックを取得し、すべてを適切な位置に戻す遅延ランナブルを追加して、おそらくこの効果を達成できると思います。ただし、fillAfter を true に設定する必要があるため、この方法では多少複雑になる可能性があると思います。ビューを手動で Runnable 内の元の位置に配置すると、遅れて投稿されます。

同じ効果を得るためのより簡単な解決策は、他のすべてが完了した後に開始するのに遅延がある 4 番目のアニメーションをセットに追加することだと思います。この 4 番目のアニメーションを 3 秒間持続させ、目に見える効果がないようにします (つまり、0% 成長します)。これにより、3 秒間の一時停止が発生し、すべてのビューを元の位置に戻すことができます (手動で行う必要はありません)。このソリューションでは、fillAfter を false に設定したままにすると、ビューが「元に戻る」ことになります。3 秒間続くが目に見える効果のない別のアニメーションを追加すると、ユーザーには一時停止のように見えます。

于 2012-06-19T22:22:14.357 に答える