2011-06-29 61 views
1

我已經建立了一個自定義viewgroup和m開始實施動畫他的viewgroup。我遇到的問題是我需要視圖組能夠在沒有它的孩子被相同動畫動畫的情況下進行動畫製作。可以說我將視圖組縮放爲2倍大小,但我仍然想讓孩子保持相同的大小(從而讓更多的孩子進入視圖組)。Animate viewgroup沒有動畫兒童

現在我打電話動畫如下:提前

ScaleAnimation expandAnimation = new ScaleAnimation(1,2,1,2); 
    this.startAnimation(expandAnimation); 

謝謝! :)

回答

3

你不能直接做你想用舊的Android動畫API做什麼。你已經注意到了一個限制 - 縮放組還包括孩子。

第二個限制是舊的Android動畫API僅影響您正在動畫的項目的視覺渲染,並且僅在動畫處於活動狀態時纔會生效。換句話說,就視圖佈局而言,它實際上並未改變所討論項目的大小或位置。它只是臨時呈現它不同的方式。因此,舉例來說,要在屏幕上爲從x移動到y的按鈕設置動畫,您需要運行動畫,然後在動畫完成時使用佈局API實際重新定位按鈕。

可能做你要找的內容的方式是:

  1. 在佈局納入一個額外的ViewGroup 部件,定位 和尺寸在頂部包含「真正」的項目小部件 。 最初,它是不可見的。
  2. 使 它可見,並播放動畫。
  3. 當動畫完成時,隱藏 額外的小部件,然後通過LayoutParams 調整您的真實 ViewGroup小部件並添加您的額外項目。
  4. 你會 大概需要調整這個一般 提綱,使效果看起來 平穩。 (例如,在從屏幕中刪除假視圖組之前,在後臺調整實際視圖組的大小)。

Android在3.0 Honeycomb中引入了一個更新,更靈活的動畫API,但不幸的是,如果您的目標是2.x設備(即手機),它不可用。希望一旦新的API成爲主流,這將會更容易。

+0

感謝您提供的信息豐富的答案,豎起大拇指!不過,我針對平板電腦的這個特定應用程序,所以我可以定義使用新的動畫框架。如果你能指出我用蜂窩apis解決這個問題的方向,那將是非常有用的:) –

+0

希望我能幫助你,但我不是新蜂窩API的專家。我的應用程序支持帶有一個APK的手機和平板電腦,因此我堅持編碼爲最低公分母。但要開始使用Honeycomb API,請查看Google Android團隊的這些文章:http://android-developers.blogspot.com/2011/02/animation-in-honeycomb.html和http:// android-developers .blogspot.com/2011/05/introduction-viewpropertyanimator.html – mportuesisf

+0

非常感謝:) –