Я разобрался, как это сделать, с помощью запускаемого приложения я смог обновлять индикатор выполнения несколько раз в секунду и, таким образом, выдавать эффект скольжения.Код ниже:
private Runnable SmoothIncrement = new Runnable() {
public void run() {
final long start = mStartTime;
long millis = SystemClock.uptimeMillis() - start;
if(track!=increase) {
if((pb.getProgress()==100)&&(count<target)) {
pb.setProgress(0);
}
pb.incrementProgressBy(1);
track++;
incrementor.postAtTime(this, start + millis);
}
else {
incrementor.removeCallbacks(this);
}
}
};
Здесь «track» отслеживает, сколько шагов было сделано, а увеличение - это общее количество шагов, которое должно быть сделано.Я могу динамически увеличивать количество приращений из потока пользовательского интерфейса, чтобы получить плавный эффект.Код работает только для индикаторов выполнения, которые не нужно уменьшать.
Чтобы запустить его, просто используйте этот код:
mStartTime = System.currentTimeMillis();
incrementor.removeCallbacks(SmoothIncrement);
if(track!=0) {
track -= increase;
}
incrementor.postDelayed(SmoothIncrement, 0);