如何使进展顺利?

我创建了一个倒计时活动,进度条移动几秒钟,但我想进度条更顺利。请帮助我。 这是我的代码,如果你想然后我可以上传我的应用程序。 进度条以秒为单位移动时减少一秒进度条增加我想进度条以毫秒增加并平稳移动。

package com.cinegoes.www.daily10exercise; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.os.CountDownTimer; import com.cinegoes.www.daily10exercise.R; import com.cinegoes.www.daily10exercise.SaveRestTime; import com.cinegoes.www.daily10exercise.button3; import android.view.View; import android.widget.Button; import android.widget.ProgressBar; import android.widget.TextView; import java.util.concurrent.TimeUnit; import static com.cinegoes.www.daily10exercise.SaveRestTime.mypreference; /** * Created by ever on 7/25/2017. */ public class t1 extends Activity implements View.OnClickListener { private CountDownTimer countDownTimer; private boolean timerStarted = false; private Button buttonStart; public TextView textView; private ProgressBar progressBarCircle; private final long startTime = 30 * 1000; private final long interval = 1 * 100; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.timer); buttonStart = (Button) this.findViewById(R.id.button); progressBarCircle = (ProgressBar) findViewById(R.id.progressBarCircle); buttonStart.setOnClickListener(this); textView = (TextView) this.findViewById(R.id.textView); countDownTimer = new CountDownTimerActivity(startTime, interval); textView.setText(textView.getText() + String.valueOf(startTime / 1000)); } @Override protected void onStart() { super.onStart(); countDownTimer.start(); timerStarted = true; setProgressBarValues(); } @Override public void onClick(View v) { Intent i = new Intent(this, pushupe1.class); startActivity(i); finish(); } public class CountDownTimerActivity extends CountDownTimer { public CountDownTimerActivity(long startTime, long interval) { super(startTime, interval); } @Override public void onFinish() { textView.setText(msTimeFormatter(startTime)); textView.setText("Time's up!"); setProgressBarValues(); Intent i = new Intent(getBaseContext(), pushupe1.class); startActivity(i); finish(); } @Override public void onTick(long millisUntilFinished) { textView.setText(msTimeFormatter(millisUntilFinished)); progressBarCircle.setProgress((int) (millisUntilFinished / 1000)); } } private void setProgressBarValues() { progressBarCircle.setMax((int) startTime / 1000); progressBarCircle.setProgress((int) startTime / 1000); } private String msTimeFormatter(long milliSeconds) { String ms = String.format("%02d:%02d", TimeUnit.MILLISECONDS.toMinutes(milliSeconds) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(milliSeconds)), TimeUnit.MILLISECONDS.toSeconds(milliSeconds) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(milliSeconds))); return ms; } } 

考虑让你的时间间隔更小,并为你的进度条的进度有一个更大的值范围。

下面是一些我用来更新进度条进度的kotlin代码。

 progressBar.max = INIT_TIME * 1000 countDown = object : CountDownTimer((INIT_TIME * 1000).toLong(), 10) { override fun onTick(millisUntilFinished: Long) { progressBar.progress = millisUntilFinished.toInt() } override fun onFinish() {} }.start() 

正如你所看到的,我的间隔更短,我的进度条的进度值范围在几千,允许更平滑的进度条动画。

Interesting Posts