计算start和endcolor之间的颜色(lineargradient)

时间:2015-08-24 18:02:25

标签: android colors gradient

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())我的代码,它现在就像一个魅力:))

1 个答案:

答案 0 :(得分:0)

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();