作者tails32100 (Tails)
看板AndroidDev
標題Re: [問題] 多次TranslateAnimation無法接續位移
時間Sun Mar 30 13:21:49 2014
恕刪原文
以下是以我用過的經驗做說明,有錯請指正
Android的Animation分三種,想知道更詳細的請Google Android Developers:
1. View Animation,屬於補間動畫。
2. Property Animation,改屬性值達成動畫效果。
3. Drawable Animation,很像GIF,要放入每個Frame,然後再播放。
View Animation
它是決定View特定幾個屬性的開始點和結束點後,再由程式計算中間的補間動畫
重點:它只是針對View做顯示動畫的效果,而不是真正移動它的位置
像某牌的Android系統可以看版面配置,一看就知道,它的位置都沒動過
或是你可以把Button從上面移到下面
但你點下面時,Button不會理你,點上面才會有反應
而原po提到的TranslateAnimation就是屬於這種
優點:用起來很簡單
缺點:除了原po提到的問題外,還有就是,它的對象只能是View
Property Animation
它是直接改屬性值來達到動畫的效果,所以對象就可以不只是View了
另外,因為它是真的去改屬性值,所以改完後看到的就是實際應有的屬性了。
優點:可以確實地靠改屬性來移動物件;對象不侷限為View。
缺點:3.0後才支援;用起來比View Animation麻煩了點。
Drawable Animation
GIF...應該可以BJ4了吧... :D
結論:如果是連續動畫需求的話,可能還是用Property Animation會比較好
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.126.68.4
※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1396156912.A.0D6.html
推 Nobuta:感謝熱心回應,但我用ObjectAnimator不知為何結果還是一樣 03/30 13:27
→ Nobuta:ObjectAnimator.ofFloat(iv, View.TRANSLATION_X, 50); 03/30 13:27
→ Nobuta:倘若我沒搞錯, 這應該是所謂的Property Animation吧? 03/30 13:27
→ Nobuta:我在目標iv上設click的funciton,每次click就執行上述code 03/30 13:30
→ Nobuta:結果還是每個click都從A->B 03/30 13:30
→ tails32100:老實說,我沒用過幾次XDDD,只知道可以這樣玩 03/30 13:31
→ tails32100:Android SDK裡的FullScreen Activity樣板有範例哦 03/30 13:33
→ tails32100:Property Animation的範例,它實現的是下面Button的滑 03/30 13:34
→ tails32100:出和滑入,可以參考看看 03/30 13:34
推 Nobuta:我之前看的類似範例 因為他滑出和滑入是固定進來和出去 03/30 13:53
→ Nobuta:是用兩個固定的Animation去實作 跟我的需求不一樣 03/30 13:54
→ tails32100:還有一個東西是 AnimatorListener 可能你會需要用到... 03/31 01:06
→ tails32100:這兩個加在一起,理論上基本的連續動畫都搞得定啦Orz 03/31 01:07