2011-08-20 44 views
1

嗨我使用的是在這裏看到一個翻譯的動畫:翻譯動畫似乎真的jenky /幹/ laggy

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXDelta="0" 
    android:toXDelta="0%" 
    android:fromYDelta="-150" 
    android:toYDelta="125%p" 
    android:duration="4500"/> 

現在它工作得很好,但它似乎閃爍/挺舉而動畫?這是標準嗎?

我有6點不同的觀點被在同一時間的動畫,這是原因在哪裏?

我這是怎麼設置的動畫:

// Create animation for image 
for(x = 0; x < 6; x++){ 
this.movement[x] = AnimationUtils.loadAnimation(this, R.layout.animation_test); 
this.movement[x].reset(); 
this.movement[x].setRepeatCount(Animation.INFINITE); 
this.movement[x].setRepeatMode(Animation.RESTART); 
this.movement[x].setStartOffset(x * 1250); 
this.movement[x].setAnimationListener(this);  
} 

// Create Droplet Layout 
for(x = 0; x < 6; x++){ 
this.mDropletLayout[x] = new LinearLayout(this); 
// Randomize   
final long rnd = Math.round(Math.random() * 480); 
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(              RelativeLayout.LayoutParams.WRAP_CONTENT,            RelativeLayout.LayoutParams.WRAP_CONTENT); 
params.leftMargin = (int) rnd; 
this.mLayout[x].setLayoutParams(params);   
} 

this.mLayout[0].setBackgroundResource(R.drawable._1); 
this.mLayout[1].setBackgroundResource(R.drawable._2); 
this.mLayout[2].setBackgroundResource(R.drawable._3); 
this.mLayout[3].setBackgroundResource(R.drawable._4); 
this.mLayout[4].setBackgroundResource(R.drawable._5); 
this.mLayout[5].setBackgroundResource(R.drawable._6); 

// Attach 
for(x = 0; x < 6; x++){ 
// Attach Animation 
this.mLayout[x].startAnimation(this.movement[x]); 
// Attach 
this.mBackgroundView.addView(this.mLayout[x]); 
} 

現在我失去了一些東西在這裏,導致動畫實際上看起來像廢話給我..?

回答

1

如果多個動畫是一個問題,那麼既然你把所有的孩子View s轉換封閉View較大,對整個mBackgroundView運行動畫,如果沒有其他的孩子,應該是固定的。否則,添加中間ViewmBackgroundView包含所有需要動畫的。然後,您可以將動畫應用到中間View

編輯:我注意到你用AnimationUtils使6個相同的動畫。根據我的理解,您可以針對所有視圖使用單個視圖。

編輯2:開始嘗試動畫你做addView之後,而不是之前。

+0

具有不同的動畫的整點是,所有的觀點應該是在動畫的不同階段,在任何給定的時間?如果我只用一個,那麼他們都一起移動?感謝您的快速回復,並指出我甚至在將視頻添加到視圖之前就開始了動畫。 –

+0

哦,那我猜你必須做你現在正在做單獨的動畫,但只使用一個單一的'Animation'對象。 – pqn