2012-03-14 19 views
6

我有一個AnimationSet與ScaleAnimation內,像這樣的TranslateAnimation:的Android ScaleAnimation和TranslateAnimation,如何避免ScaleAnimation運動

TranslateAnimation:

TranslateAnimation goTopFromRight = 
     new TranslateAnimation(0, -(right.getLeft()-top.getLeft()), 
           0,-(right.getTop()-top.getTop())); 

ScaleAnimation:

ScaleAnimation = setSizeForTop = new ScaleAnimation(1, 2, 1, 2); 

和動畫集:

bringToLeftFromTopAnimationSet = new AnimationSet(true); 
bringToTopFromRightAnimationSet.addAnimation(goTopFromRight); 
bringToTopFromRightAnimationSet.addAnimation(setSizeForTop); 

問題是,當我嘗試只使用ScaleAnimation時,我的項目轉到了我想要的位置,但是當我在AnimationSet中將TranslateAnimation與ScaleAnimation一起使用時,我的項目翻譯得比我需要的更多,就好像ScaleAnimation介紹一些補充動作abd我不知道如何刪除它們。

謝謝你的幫助。

回答

4

要使用ScaleAnimation和TranslateAnimation時避免ScaleAnimation運動,你必須與那些從ScaleAnimation這樣乘以TranslateAnimation參數應用:

TranslateAnimation goRightFromTop; 
ScaleAnimation sizeNotUp; 

goRightFromTop = new TranslateAnimation(0,(-(invisibleCenterImageView.getLeft() - imageViewRight.getLeft()))*(1/0.6667f), 0, (-(invisibleCenterImageView.getTop() - imageViewRight.getTop()))*(1/0.6667f)); 
sizeNotUp  = new ScaleAnimation(1,0.6667f,1,0.6667f,Animation.RELATIVE_TO_SELF, (float)0.5, Animation.RELATIVE_TO_SELF, (float)0.5); 

,然後會讓你大吃一驚刪除ScaleAnimation運動。

1

我記得有嵌套動畫的奇怪問題。 您是否嘗試過手動設置軸心點?請參閱http://developer.android.com/reference/android/view/animation/ScaleAnimation.htmlpublic ScaleAnimation (float fromX, float toX, float fromY, float toY, float pivotX, float pivotY)。 它可以工作。

+1

謝謝你的回答@ShadowMare對於遲到的回放感到抱歉。事實上,我不明白什麼是浮動pivotX和浮動pivotY。 – 2012-03-19 11:41:22

+0

對不起,沒有注意到評論。我相當肯定你已經發現兩個樞軸值都是動畫的「錨點」。 – ShadowMare 2012-04-17 17:54:40

+1

謝謝@ShadowMare,實際上,爲了避免漫遊,我們必須乘以ScaleAnimation參數來使TranslateAnimation倍增。 – 2012-04-18 06:40:19

5

正確的解決方案是改變動畫的順序。規模必須先走:

bringToTopFromRightAnimationSet.addAnimation(setSizeForTop); 
bringToTopFromRightAnimationSet.addAnimation(goTopFromRight); 
+0

這應該是正確的解決方案。謝謝! – Steelight 2014-04-13 07:45:46

+0

當然,這個答案是正確的 – 2016-04-08 09:21:36

0

我的解決辦法是增加一個集裝箱您的視野之外,規模動畫應用到你的觀點,同時將轉換動畫的容器。
然後,即使通過XML,你也可以製作更復雜的動畫〜

相關問題