2012-06-19 187 views
1

我有一個AnimationSet,它可以做3種不同的動畫。 動畫結束後,我想暫停應用程序3秒,然後再將所有內容都恢復到起始位置。動畫後暫停

我該怎麼做?

回答

1

我想你很可能以某種方式達到這種效果與AnimationListener設置一個得到一個回調時,你的動畫結束,並添加一個可運行的延遲,將移動一切都回到適合你的位置。不過,我認爲這樣做可能會有些複雜,因爲它需要將fillAfter設置爲true,然後手動將視圖放置在您的Runnable內的原始位置,這些視圖會延遲發佈。

我認爲獲得同樣效果的更直接的解決方案是簡單地將第四個動畫添加到您的設置中,延遲時間使其在所有其他設置完成後啓動。使第四個動畫持續3秒,並使其無法看到效果(即增長0%)。這應該在3秒內暫停,並且仍然可以將所有視圖恢復到原始位置(無需手動執行)。有了這個解決方案,你可以將fillAfter設置爲false,這會導致你的視圖「反彈」。通過添加另一個持續3秒但沒有可見效果的動畫,它對用戶來說似乎是一種暫停。

+0

添加了一個什麼也沒做的動畫,但持續了3秒。 – Peter

1

那麼,有一個animation.hasEnded()函數可以用來測試動畫是否完成。當它返回true時,你可以使用java定時器來安排一個任務,然後等待幾毫秒。 AnimationSet也有一個函數來獲取動畫的持續時間。

看一看...... AnimationAnimationSet