计算开始和结束颜色之间的颜色(线性渐变)

Calculate Colors in between start and endcolor (lineargradient)

在Android中我有两种颜色的整数:

int oldColor = getActivity().getWindow().getStatusBarColor();
int newColor = mColor;

现在我想通过 ValueAnimator 在这两种颜色之间淡化状态栏:

ValueAnimator animator = ValueAnimator.ofInt(oldColor, newColor);
animator.setDuration(200);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
        getActivity().getWindow().setStatusBarColor((Integer)animation.getAnimatedValue());
    }
});
animator.start();

现在显然这行不通,但我希望你理解我的意图...我如何使用预定义的步数准确计算 oldColor 和 newColor 之间的值?

此致

//编辑:

我已经添加了 animator.setEvaluator(new ArgbEvaluator()) 到我的代码,它现在就像一个魅力:))

int oldColor = getActivity().getWindow().getStatusBarColor();
int newColor = mColor;
ValueAnimator animator = ValueAnimator.ofInt(oldColor, newColor);
animator.setDuration(200);
animator.setEvaluator(new ArgbEvaluator())
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
        getActivity().getWindow().setStatusBarColor((Integer)animation.getAnimatedValue());
    }
});
animator.start();