2017-02-17 72 views
0

我試圖改變我的視圖的背景顏色。我寫了一些代碼,我可以用動畫改變顏色,但是第一次我的視圖在顏色改變之前就凍結了。這是我的代碼不能更改背景

private void changeBackgroundColorWithAnimation(int duration, final View view, int startColor, int endColor) { 
    ValueAnimator anim = new ValueAnimator(); 
    anim.setIntValues(startColor, endColor); 
    anim.setEvaluator(new ArgbEvaluator()); 
    anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
     @Override 
     public void onAnimationUpdate(final ValueAnimator valueAnimator) { 
      view.setBackgroundColor((Integer) valueAnimator.getAnimatedValue()); 

     } 
    }); 

    anim.setDuration(duration); 
    anim.start(); 
} 

我打電話給我的功能是這樣的:

changeBackgroundColorWithAnimation(300, TransferFragmentNewVersion.rootLayout, 
    Color.parseColor("#E6000000"), Color.WHITE); 

正如我所說的背景顏色發生了變化,但第一次查看時凍結(僅第一次)長

我如何解決我的問題?感謝大家。

回答

0

爲什麼你不發送視圖的初始顏色作爲起始顏色? 您可以用TransferFragmentNewVersion.rootLayout.getSolidColor()替換Color.parseColor("#E6000000")

你能發佈更多的代碼嗎?