如何在停止/播放动画中的某个位置启动进度条?[Xamarin形式]


progressBar.Animate("SetProgress", (arg) => {
System.Diagnostics.Debug.WriteLine(arg); // 0.00 - 1.00 is the value
progressBar.Progress = arg;
}, 1, 5000, Easing.Linear, 
(v, c) => progressBar.Progress = 0);  // when finished, reset

这是我用来停止进度条的(工作正常(

progressBar.AbortAnimation("SetProgress");

因此,每次制作动画时,进度条都从0开始。现在我想从某个时间开始。因此,假设从 500 毫秒(5 秒(中的第 3 秒开始。

然后我这样做,progressBar.Progress = 0.3;动画上方。无论哪种方式,进度条仍然从 0 秒开始。

我该怎么做才能在设置的 5 秒周期中启动计时器一段时间?

尝试这样的方式来设置动画的初始值

var animation = new Animation (v => progressBar.Progress = v, 0.3, 1);
animation.Commit (this, "SimpleAnimation", 16, 2000, Easing.Linear, (v, c) => image.Scale = 1, () => false);

要取消

this.AbortAnimation ("SimpleAnimation");

您可以使用"自定义"动画:

double totalTime = 5000;
double startTime = 3000;
var animation = new Animation(v => progress.Progress = v, startTime/totalTime, 1, Easing.Linear);
animation.Commit(this, "LinearProgressFromTime", 16, (uint)(totalTime - startTime) , Easing.Linear, (v, c) => progress.Progress = 1, () => false);

最新更新