Android: ValueAnimator 闪烁颜色这么快?

Android: ValueAnimator Flashes Colors So Quickly?

我正在使用 属性 动画师 ValueAnimator 来制作徽标颜色变化的动画。动画有效,但颜色闪烁得如此之快。如何控制它们,让颜色变化缓慢而平滑?

这是我使用的代码:

    private void animateLogo(){ 
    ImageView imgLogo = findViewById(R.id.imgview_logo);
    ValueAnimator animator = ValueAnimator.ofArgb();
    animator.setDuration(5000);
    animator.setEvaluator(new ArgbEvaluator());
    animator.setIntValues(R.color.colorGoldNew,
            R.color.dbIndex0,
            R.color.dbIndex5,
            R.color.dbIndex6);
    animator.addUpdateListener(animation ->

            imgLogo.setColorFilter(getResources().getColor((int) animator.getAnimatedValue()))
    );
    animator.start(); 
}

ArgbEvaluator evaluates 基于表示颜色的32位int值。您当前使用的是 R class ID int 值,我怀疑它会扰乱评估器。

我已经通过 getColor()

使用了相应的 int 颜色值
    private void animateLogo(){
    ImageView imgLogo = findViewById(R.id.imageView);
    ValueAnimator colorAnim = ValueAnimator.ofInt(getColor(R.color.colorGoldNew),getColor(R.color.dbIndex0),getColor(R.color.dbIndex5),getColor(R.color.dbIndex6));
    colorAnim.setDuration(5000);
    colorAnim.setEvaluator(new ArgbEvaluator());
    colorAnim.addUpdateListener(valueAnimator -> imgLogo.setColorFilter((int)colorAnim.getAnimatedValue()) );
    colorAnim.start();
}

结果: