2012-06-26 61 views
0

如何在不同的持續時間內一個接一個地動畫不同的對象組?Android:如何在不同的時間段內動畫不同的對象?

Java代碼:

ImageButton home = (ImageButton)findViewById(R.id.homeicon); 
ImageButton settings = (ImageButton)findViewById(R.id.settingsicon); 

Animation alpha_anim = AnimationUtils.loadAnimation(this, R.anim.alpha); 
home.startAnimation(alpha_anim); 
settings.startAnimation(alpha_anim); 

動畫文件:

<?xml version="1.0" encoding="utf-8"?> 
<alpha 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:fromAlpha="0.0" 
android:toAlpha="0.9" 
android:duration="8000" /> 

誰能幫助我?

回答

1

路線,我想在第二個佈局上開始動畫。

所以我用了handler在那個時候這樣做,這樣

Handler handler = new Handler(); // create Handler object 
handler.post(homeRun); 
Runnable homeRun = new Runnable() { // create runnable to start home anim 
    public void run() { 
     home.startAnimation(alpha_anim); 
     handler.postDelayed(settingsRun, 1000); // start setting anim after the time the home takes to animate 
    } 
}; 

Runnable setingsRun = new Runnable() { // runnable to start settings anim 
    public void run() { 
     settings.startAnimation(alpha_anim); 
    } 
}; 
1

您可以爲第二個動畫添加一個延遲,以確定第一個應該拍攝的時間。請意識到這可能是不夠準確的爲你的需要,如果沒有,那麼你可能需要去我有一個屏幕,在這裏我需要儘快動畫第一佈局並作爲其完成的AnimationListener

home.startAnimation(alpha_anim); 
alpha_anim.setStartOffset(8000); 
settings.startAnimation(alpha_anim); 
+0

謝謝!它對我來說非常完美! – luiscosta

0

如果要執行一前一後,你可以使用此代碼。通過使用監聽器,您確定動畫已完成。

animation.setDuration(8000); 
    animation.setAnimationListener(new AnimationListener() { 

     @Override 
     public void onAnimationEnd(Animation animation) { 
      animation.setDuration(6000); 
           animation.setAnimationListener(null); 
      settings.startAnimation(animation); 
     } 

     @Override 
     public void onAnimationRepeat(Animation animation) { 

     } 

     @Override 
     public void onAnimationStart(Animation animation) { 
     } 

    }); 
    home.startAnimation(alpha_anim); 
+0

你會推薦什麼:http://stackoverflow.com/questions/18899280/multiple-xml-animation-is-not-working – Si8

相關問題