我在我的应用程序中使用ProgressBar,并在AsyncTask的onProgressUpdate中更新它。到目前为止都还好。
我想要做的是动画地更新进度,使其不仅仅“跳跃”到值,而是平滑地移动到它。
我尝试运行以下代码来实现:
this.runOnUiThread(new Runnable() {
@Override
public void run() {
while (progressBar.getProgress() < progress) {
progressBar.incrementProgressBy(1);
progressBar.invalidate();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});
问题在于进度条直到完成其最终值(进度变量)之前不会更新其状态。屏幕上也不显示所有中间状态。调用progressBar.invalidate()也没有帮助。有什么想法吗?谢谢!
interpolatedTime
是传递给setDuration()
的值。 - riteshtchapplyTransformation()
拯救了我的一天!非常感谢。 - riteshtch