如题:Android 圆形进度条要怎么样实现圆滑地更新进度? 比如进度从0%到10% 不是跳一下或者10下。。 而是滑动过去
這應該不是滑吧,你要的應該是很多的跳動,比如跳一格是0.01%,這樣看起來就很平滑了。
参考一下:
https://github.com/dmytrodanylyk/circular-progress-button
https://github.com/Todd-Davies/ProgressWheel
你设置每次刷新的时候,增加的进度量少一些就行了。比如每次增加1.
将增量减小,当小到一定程度就看起来平滑了,跟定积分一个道理
分析一下原因,就是你的增量现在一下要增加10,那么在这么短的时间内,肯定看到的是一闪就到了,所以看起来不平滑。
解决方案:增加10的时候,把10拆分开来增加,比如每次增加1,增加完之后,暂停10ms,再增加1,知道10增加完成
举个例子来说:
比如现在的圆形进度条名称叫mProgressBar,当你现在有一个增量为10的时候,那么你mProgress.setProgress(10);,它一下子就变为10了,那么现在你可以做一个封装:
比如一个方法
private ProgressBar mProgressBar;
private synchronized void setMProgressBarValue(int value){
int addProgress = value;
int currentProgress = mProgressBar.getProgress();
for (int i = currentProgress; i < addProgress; i++) {
currentProgress += i;
mProgressBar.setProgress(currentProgress);
try {
Thread.sleep(1 * 10);
} catch (InterruptedException e) {
}
}
}