2014-05-17 35 views
0

我一直在尋找一段時間,似乎無法找到有關此主題的任何有用內容。是否可以將LayoutTransition的動畫設置爲在XML中聲明的動畫?默認的動畫會淡入ViewGroup中添加或刪除的視圖,並相應地移動其他視圖,但我希望將視圖滑入或滑出側面。我嘗試了以下從Animation對象設置Animator,但它看起來並沒有做任何事情。我只是設置了兩種類型中常見的字段,但實際上我不知道我在做什麼動畫。從R.anim獲取LayoutTransition的動畫XML

@TargetApi(Build.VERSION_CODES.HONEYCOMB) 
private void setLayoutTransition() { 
    LayoutTransition transition = new LayoutTransition(); 

    Animation appearing = AnimationUtils.loadAnimation(context, android.R.anim.slide_in_left); 
    Animator aa = transition.getAnimator(LayoutTransition.APPEARING); 
    aa.setDuration(appearing.getDuration()); 
    aa.setInterpolator(appearing.getInterpolator()); 

    Animation disappearing = AnimationUtils.loadAnimation(context, android.R.anim.slide_out_right); 
    Animator bb = transition.getAnimator(LayoutTransition.DISAPPEARING); 
    bb.setDuration(disappearing.getDuration()); 
    bb.setInterpolator(disappearing.getInterpolator()); 

    transition.setAnimator(LayoutTransition.APPEARING, aa); 
    transition.setAnimator(LayoutTransition.DISAPPEARING, bb); 

    dashboardLayout.setLayoutTransition(transition); 
} 

回答

1

不,你不能。實際上,AnimationAnimator是API的不同部分,針對的是稍微不同的任務。

Animator s是價值動畫,Animation s是視圖動畫。因此,Animator可以動畫化對象具有的任何屬性,但您必須指定什麼以及如何。 Animation s不夠靈活,但有一些準備食譜的意見。

因此,對於您的情況,您可以從頭開始定義Animator s,或手動啓動Animation s對佈局更改所涉及的視圖 - 後者是可能的,但我覺得它會導致比前者更麻煩的方式。

圍棋與Animator S,你可以很容易地在.xml文件定義他們太多,這裏的all about it