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

时间:2018-10-24 19:30:56

标签: c# xamarin xamarin.forms

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秒时间内,我应该怎么做才能在一定时间内启动计时器?

2 个答案:

答案 0 :(得分:1)

尝试类似的方法来设置动画的初始值

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");

答案 1 :(得分:0)

您可以使用“自定义”动画:

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);