2012-06-17 106 views
19

我試圖依次使用Animator集來播放一組動畫。除了alpha動畫以外,一切正在工作(set1)。它從0.25f變爲1,但在整個動畫中並沒有消失,在set1動畫結束時它從0.25變爲1,而沒有考慮setDuration(因此我沒有得到淡入效果)。所以我沒有淡入效果......當我自己做這個動畫時,淡入效果就在那裏....任何想法?ObjectAnimator不褪色

我正在使用美妙的nineoldandroids庫來實現這一點。

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    final ImageView image = (ImageView) findViewById(R.id.image); 
    final AnimatorSet set = new AnimatorSet(); 
    set.play(ObjectAnimator.ofFloat(image, "translationX", 0, 100).setDuration(3000)); 

    final AnimatorSet set1 = new AnimatorSet(); 
    //THIS IS THE PROBLEMATIC ANIMATION!! 
    set1.play(ObjectAnimator.ofFloat(image, "alpha", 0.25f, 1).setDuration(3000)); 

    final AnimatorSet set2 = new AnimatorSet(); 
    set2.play(ObjectAnimator.ofFloat(image, "translationX", 100, 200).setDuration(3000)); 

    final AnimatorSet set3 = new AnimatorSet(); 
    set3.playSequentially(set,set1,set2); 
    set3.start(); 
} 
+2

檢查天氣1)動畫對象是否可見 –

+0

您應該使1和1f。 – tim687

回答

5

試試這個。

ObjectAnimator.ofFloat(image, "alpha", 0.25f, 1, 1) 
30

雖然工作4.0+

ObjectAnimator alphaAnimation = ObjectAnimator.ofFloat(image, View.ALPHA, 0,1); 
1

的佈局已經完成後,你應該開始對象動畫。

final View image = findViewById(R.id.image); 
final ViewTreeObserver observer = image.getViewTreeObserver(); 
observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
     observer.removeOnGlobalLayoutListener(this); 
     // start animators 
    } 
});