我正在尝试制作一个ProgressWheel,其中颜色随着车轮填满而变化(车轮开始绿色为0%并且以100%结束红色,所有车轮在整个时间内变为红色:不是彩虹)。 所以我使用的是ObjectAnimator,轮子采用了入门颜色,但我无法让它随着时间的推移而变色......
final ObjectAnimator animator = ObjectAnimator.ofInt(progressBar, "barColor", Color.GREEN, Color.RED);
animator.setDuration(remainingTime);
animator.setEvaluator(new ArgbEvaluator());
animator.setInterpolator(new DecelerateInterpolator(2));
animator.start();
有什么想法吗?
答案 0 :(得分:0)
我终于这样做了(它来自StackOverflow上的另一篇文章):
final ObjectAnimator colorAnimator = ObjectAnimator.ofObject(progressBar, "barColor", new ArgbEvaluator(), green, red);
colorAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
progressBar.refreshWheel();
}
});
colorAnimator.setInterpolator(new DecelerateInterpolator());
colorAnimator.setDuration(remainingTime);
colorAnimator.start();
并在ProgressWheel.java中
public void refreshWheel() {
setupPaints();
}