平滑循环进度条动画Android

时间:2017-03-06 14:00:10

标签: java android

我正在尝试使用倒数计时器创建一个平滑的进度条。我希望计时器倒计时最多20秒。我使用下面的代码,但我无法实现进度条的平滑降序。倒计时滴答功能与进度条一起工作正常,但不是顺利行为。我从我的项目中使用的stackoverflow中找到了以下代码,但是你能告诉我我做错了吗。

 if(android.os.Build.VERSION.SDK_INT >= 11){
        // will update the "progress" propriety of seekbar until it reaches progress
        ObjectAnimator animation = ObjectAnimator.ofInt(progressBarTimer, "progress", 0, 500);
        animation.setDuration(20000); // 0.5 second
        animation.setInterpolator(new LinearInterpolator());
        animation.start();
    }
    else
        progressBarTimer.setProgress(100);

enter image description here

1 个答案:

答案 0 :(得分:1)

我只是将进度条划分为1000个部分,然后每100毫秒调用一次,这样就会更加顺畅

公共类MainActivity扩展了AppCompatActivity {

ProgressBar barTimer;
CountDownTimer countDownTimer;
TextView textTimer;
@Override 
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    barTimer = findViewById(R.id.barTimer);


   barTimer.setMax(1000);
    startTimer(10); 

} 

private void startTimer(final int minuti) {
    countDownTimer = new CountDownTimer(60 * minuti * 1000, 100) {
        @Override 
        public void onTick(long leftTimeInMilliseconds) {

            long seconds = leftTimeInMilliseconds / 600;

            barTimer.setProgress((int)seconds);

        } 
        @Override 
        public void onFinish() { 

        } 
    }.start();

} 
}