我正在尝试使用倒数计时器创建一个平滑的进度条。我希望计时器倒计时最多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);
答案 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();
}
}