我有两种颜色整数:
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())
我的代码,它现在就像一个魅力:))
答案 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();