2010-04-02 80 views

回答

26

基本上,除了(相當痛苦)幀/吐溫動畫有佈局動畫,視圖的動畫和過渡動畫。在顯示元素時(無論是在初始活動佈局還是將視圖設置爲可見)以及在新活動開始時過渡動畫,佈局動畫都會觸發。標準視圖動畫是可以在每個視圖/佈局基礎上觸發的主力靈活動畫,但它們需要更多的工作(在XML定義之外,「活動」和「佈局」動畫通常是單線)。

還有像ViewFlipper這樣有用的類可以減輕某些動畫的工作量。檢查SDK附帶的Android API演示應用程序(文檔here)。簡單的視圖動畫位於this class,轉換爲this class,以及一些更復雜的示例here(2.0 API演示應用程序中有一個佈局動畫示例,但我無法在聯機文檔中找到它)。請務必查看res/anim中演示的相關XML;文檔中關於動畫XML的規範有點稀疏,但API演示和Android源代碼中有很多很好的示例。您可以使用XML來自定義轉換類型(淡入淡出,滾動等)和插值(加速,過沖等),從而提供相當大的功率(足以覆蓋大多數用例,無論如何)。

AnimationUtils類也可以幫助很多。通過Android系統源代碼進行快速的grep應該會爲您提供一些有用的工具。這些資源應該足以讓你開始;祝你好運!

ADDENDUM(5/2011):還有(僅限3.0+)property animation系統,這非常酷,因爲您可以使用它來爲自定義視圖上的任意屬性設置動畫;除非您正在編寫特定於3.0的應用程序,否則在使用之前需要等待。

+1

如果您的目標<3.0,請查看出色的NineOldAndroid庫。 http://nineoldandroids.com/當然是 – irwinb 2013-01-06 16:35:02

+1

。但請注意:AFAIK任何屬性動畫都無法用舊系統僞造,只會被忽略,甚至有些可以僞造的東西在使用舊的系統兼容性轉換時看起來會不那麼優雅(特別是使用周圍的內容調整動畫大小調整視圖大小 - 這只是舊​​系統實施的一個限制,它只改變視圖的繪製而不是實際的尺寸)。 – 2013-01-18 21:24:32