2010-09-10 111 views
0

動畫僅影響小部件的繪製,這意味着動畫完成後,我的FrameLayout screenMain仍處於其以前的位置,您需要在下一個位置設置FrameLayout。Android動畫不會影響佈局

screenMain.setOnClickListener(new View.OnClickListener() { 
     int i = 0; 

     @Override 
     public void onClick(View view) { 
      if (i % 2 == 0) { 
       screenMain.startAnimation(translate); 
       sh.startAnimation(translate); 
       sg.startAnimation(translate); 
       i++; 
      } else { 
       screenMain.startAnimation(translateb); 
       sh.startAnimation(translateb); 
       sg.startAnimation(translateb); 
       i++; 

      } 

     } 

    }); 

代碼動畫

<?xml version="1.0" encoding="utf-8"?> 
<set> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXDelta="0.0" 
     android:toXDelta="0.0" 
     android:fromYDelta="0.0" 
     android:toYDelta="180.0" 
     android:duration="200" 
     android:fillAfter="true" 
     android:fillEnabled="true" 
     /> 
</set> 

代碼animationb

<?xml version="1.0" encoding="utf-8"?> 
<set> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXDelta="0.0" 
     android:toXDelta="0.0" 
     android:fromYDelta="180.0" 
    android:toYDelta="0.0" 
     android:duration="200" 
     android:fillAfter="true" 
    android:fillEnabled="true" /> 
</set> 

回答

0

要更改視圖的位置,你需要調用view.setLayoutParams()。實現這種動畫效果的簡單方法是首先將setLayoutParams()調用到結束位置,然後從原始位置調用TranslateAnimation。

這裏有更多的細節如何:http://www.clingmarks.com/?p=400

+0

什麼是動畫和意見 佈局之間的關係因其中,動畫後,視圖位置不 一樣的動畫之前? – dfgmorgan 2010-09-10 16:09:21

+1

翻譯動畫實際上並沒有改變視圖的位置。它更改 繪製的位置,而不是它在佈局中的位置。 – dfgmorgan 2010-09-10 16:28:30