好的,所以我有一个 15 秒的倒计时计时器,它工作得非常好,我想为那个计时器制作一个自定义的圆形进度条。
我想创建一个完整的圆圈,当计时器下降时取出“馅饼片(圆圈)”,直到不再有圆圈为止。
我更喜欢自己制作形状而不是使用预制图像,因为我希望任何手机上的质量都很好。我该怎么办?谢谢!
最佳答案
我发现这个例子非常好:http://mrigaen.blogspot.it/2013/12/create-circular-progress-bar-in-android.html
所以我以这种方式创建了我的进度条
<ProgressBar
android:id="@+id/barTimer"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_centerInParent="true"
android:progressDrawable="@drawable/circular_progress_bar" />
然后我为倒计时做了一个函数,其中:
private void startTimer(final int minuti) {
countDownTimer = new CountDownTimer(60 * minuti * 1000, 500) {
// 500 means, onTick function will be called at every 500 milliseconds
@Override
public void onTick(long leftTimeInMilliseconds) {
long seconds = leftTimeInMilliseconds / 1000;
int barVal= (barMax) - ((int)(seconds/60*100)+(int)(seconds%60));
barTimer.setProgress(barVal);
textTimer.setText(String.format("%02d", seconds/60) + ":" + String.format("%02d", seconds%60));
// format the textview to show the easily readable format
}
@Override
public void onFinish() {
if(textTimer.getText().equals("00:00")){
textTimer.setText("STOP");
}
else{
textTimer.setText("2:00");
}
}
}.start();
}
更新
private void startTimer(final int minuti) {
countDownTimer = new CountDownTimer(60 * minuti * 1000, 500) {
// 500 means, onTick function will be called at every 500 milliseconds
@Override
public void onTick(long leftTimeInMilliseconds) {
long seconds = leftTimeInMilliseconds / 1000;
barTimer.setProgress((int)seconds);
textTimer.setText(String.format("%02d", seconds/60) + ":" + String.format("%02d", seconds%60));
// format the textview to show the easily readable format
}
@Override
public void onFinish() {
if(textTimer.getText().equals("00:00")){
textTimer.setText("STOP");
}
else{
textTimer.setText("2:00");
barTimer.setProgress(60*minuti);
}
}
}.start();
}
关于android - 圆形进度条(用于倒数计时器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20010997/