Todd-Davies在ProgressWheel上的ObjectAnimator

时间:2014-09-12 16:15:29

标签: android progress-bar objectanimator

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

有什么想法吗?

1 个答案:

答案 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();
}