如何在Android中为进度条设置动画

Rag*_*ini 0 android android-animation android-progressbar

我想创建 1 分钟的计时器进度条。我使用了以下代码,但它从 60 到 0 开始,而使用相同的过程,我必须从 0 到 60 开始。

public static void animateTimerProgress(int currentTimeDuration, final int maxTimeDuration, boolean withStartDelay, final DonutProgress timeOutProgressView, Runnable endAction) {
    final int duration = currentTimeDuration < 0 ? 1 : currentTimeDuration;
    timeOutProgressView.setMax(maxTimeDuration);
    timeOutProgressView.setProgress(duration);
    timeOutProgressView.animate()
            .setDuration(duration * SECOND_IN_MILLIS)
            .setInterpolator(new LinearInterpolator())
            .setStartDelay(withStartDelay ? TIMEOUT_START_DELAY : 0)
            .setUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator valueAnimator) {
                    int progress = 1 + (int) ((1f - valueAnimator.getAnimatedFraction()) * (duration - 1f));

                    timeOutProgressView.setProgress(progress);
                }
            })
            .withEndAction(endAction)
            .start();
}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

Moh*_*dan 5

你可以使用ValueAnimator这样的

ValueAnimator animator = ValueAnimator.ofInt(0, 60);
animator.setDuration(duration * SECOND_IN_MILLIS);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    public void onAnimationUpdate(ValueAnimator animation) {
        timeOutProgressView.setProgress((int) animation.getAnimatedValue());
    }
});
animator.start();
Run Code Online (Sandbox Code Playgroud)