1

我正在尝试制作一个 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();

任何的想法?

4

1 回答 1

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();
}
于 2014-09-17T06:56:40.963 回答