计算开始和结束颜色之间的颜色(线性渐变)
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();
在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();