簡體   English   中英

Android:兩個動畫,持續時間不同

[英]Android: Two animation together with different duration

我有兩個具有不同持續時間的動畫,如下所示:
動畫1:

    TranslateAnimation trans1 = new TranslateAnimation(0, 0, 0, 500);  
    trans1.setStartOffset(0);  
    trans1.setDuration(5000);  
    trans1.setFillAfter(true);  

動畫2:

    TranslateAnimation trans2 = new TranslateAnimation(0, -100, -200, -200);  
    trans2.setDuration(200);  
    trans2.setRepeatCount(25);  
    trans2.setFillAfter(true);  

如您所見,這些動畫具有不同的持續時間。 我想在一次Anim1(持續時間5000)動畫從Y:0到500的過程中,對Anim2(持續時間200)進行25次循環動畫。

我嘗試使用AnimationSet和addAnimation進行操作,但它不起作用。 您能給我一些提示,我該如何解決這個問題?

我的代碼:

AnimationSet rootSet = new AnimationSet(true);   
rootSet.setInterpolator(new AccelerateInterpolator());  
rootSet.setRepeatMode(Animation.INFINITE);  
rootSet.setRepeatCount(200);  
rootSet.setDuration(5000);  
rootSet.setFillAfter(true);  

    TranslateAnimation trans1 = new TranslateAnimation(0, 0, 0, 500);  
    trans1.setStartOffset(0);  
    trans1.setDuration(5000);  
    trans1.setFillAfter(true);  

rootSet.addAnimation(trans1);


AnimationSet rootSet2 = new AnimationSet(true);  
rootSet2.setInterpolator(new AccelerateInterpolator());  
rootSet2.setRepeatMode(Animation.INFINITE);  
rootSet2.setRepeatCount(200);  
rootSet2.setDuration(200);  

    TranslateAnimation trans2 = new TranslateAnimation(0, -100, -200, -200);  
    trans2.setDuration(200);
    trans2.setRepeatCount(25);
    trans2.setFillAfter(true);

rootSet2.addAnimation(trans2);  

rootSet.addAnimation(rootSet2);  

iv.startAnimation(rootSet);  

編輯:
當我只播放trans2動畫時,它會重復播放25次(水平播放)。 另外,我希望此動畫以垂直方式(trans1)進行動畫處理(整個水平動畫不僅是imageview)。

我希望這個描述會更清楚。

當我將這兩個動畫添加到一個AnimationSet中時,第一個動畫根本不起作用,並且imageview(非animationn)線性轉換為-200,500。

現在我明白了你想做什么。 您最好制作多個動畫-每個“行”一個。 添加一個AnimationListener來知道上一個AnimationListener何時結束( onAnimationEnd回調),跳下一行,然后再次從右移到左。

它們基本上都相同,只是每個動畫的fromYDeltatoYDelta值都會改變。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM