private Xamarin.Forms.Animation CreateFarwardAnimationForFourValues() { double v1 = 0, v2 = 0, v3 = 0, v4 = 0; var Parent = new Xamarin.Forms.Animation((d) => Target.GetType().GetProperty(PropertyName).SetValue(Target, new CornerRadius(v1, v2, v3, v4)), 0, 1, AnimationEasing); Parent.Add(0, 1, new Xamarin.Forms.Animation(d => { v1 = d; }, Convert.ToDouble(_structStartValues[0]), Convert.ToDouble(_structEndValues[0]))); Parent.Add(0, 1, new Xamarin.Forms.Animation(d => { v2 = d; }, Convert.ToDouble(_structStartValues[1]), Convert.ToDouble(_structEndValues[1]))); Parent.Add(0, 1, new Xamarin.Forms.Animation(d => { v3 = d; }, Convert.ToDouble(_structStartValues[2]), Convert.ToDouble(_structEndValues[2]))); Parent.Add(0, 1, new Xamarin.Forms.Animation(d => { v4 = d; }, Convert.ToDouble(_structStartValues[3]), Convert.ToDouble(_structEndValues[3]))); return(Parent); }
public override Xamarin.Forms.Animation CreateReverseAnimation() { double A = 0, R = 0, G = 0, B = 0; var Parent = new Xamarin.Forms.Animation((d) => Target.GetType().GetProperty(PropertyName).SetValue(Target, Xamarin.Forms.Color.FromRgba(R, G, B, A)), 0, 1, AnimationEasing); Parent.Add(0, 1, new Xamarin.Forms.Animation(d => { A = d; }, Xamarin.Forms.Color.FromHex(EndValue.ToString()).A, Xamarin.Forms.Color.FromHex(StartValue.ToString()).A)); Parent.Add(0, 1, new Xamarin.Forms.Animation(d => { R = d; }, Xamarin.Forms.Color.FromHex(EndValue.ToString()).R, Xamarin.Forms.Color.FromHex(StartValue.ToString()).R)); Parent.Add(0, 1, new Xamarin.Forms.Animation(d => { G = d; }, Xamarin.Forms.Color.FromHex(EndValue.ToString()).G, Xamarin.Forms.Color.FromHex(StartValue.ToString()).G)); Parent.Add(0, 1, new Xamarin.Forms.Animation(d => { B = d; }, Xamarin.Forms.Color.FromHex(EndValue.ToString()).B, Xamarin.Forms.Color.FromHex(StartValue.ToString()).B)); return(Parent); }
public override Xamarin.Forms.Animation OnAnimate() { var animation = new Xamarin.Forms.Animation(); for (var i = 1; i < _sortedKeyFrames.Count; i++) { var fromFrame = (KeyFrame <TValue>)_sortedKeyFrames[i - 1]; var toFrame = (KeyFrame <TValue>)_sortedKeyFrames[i]; var toFrameEasing = toFrame.Easing != Easing.Linear ? toFrame.Easing : Easing; var frameAnimation = new Xamarin.Forms.Animation(x => { var value = Tweener.Tween(fromFrame.Value, toFrame.Value, x); Target.SetValue(TargetProperty, value); }, easing: toFrameEasing); var beginAt = (double)fromFrame.KeyTime / Duration; var endAt = (double)toFrame.KeyTime / Duration; animation.Add(beginAt, endAt, frameAnimation); } return(animation); }
private Xamarin.Forms.Animation CreateReverseAnimationForTwoValues() { double v1 = 0, v2 = 0; var Parent = new Xamarin.Forms.Animation((d) => Target.GetType().GetProperty(PropertyName).SetValue(Target, new Thickness(v1, v2)), 0, 1, AnimationEasing); Parent.Add(0, 1, new Xamarin.Forms.Animation(d => { v1 = d; }, Convert.ToDouble(_structEndValues[0]), Convert.ToDouble(_structStartValues[0]))); Parent.Add(0, 1, new Xamarin.Forms.Animation(d => { v2 = d; }, Convert.ToDouble(_structEndValues[1]), Convert.ToDouble(_structStartValues[1]))); return(Parent); }
public void PlayReverse() { uint Length = 0; var Parent = new Xamarin.Forms.Animation(); for (int i = PropertyAnimations.Count - 1; i >= 0; i--) { PropertyAnimations[i].Target = IsGlobal ? Target : PropertyAnimations[i].Target; Length += PropertyAnimations[i].Length; Parent.Add(0, 1, PropertyAnimations[i].CreateReverseAnimation()); } Parent.Commit(Target, $"{nameof(ParallelAnimation)}", Rate, Length, AnimationEasing, GetFinishedAction()); }
public void Play() { uint Length = 0; var Parent = new Xamarin.Forms.Animation(); foreach (var propertyAnimation in PropertyAnimations) { propertyAnimation.Target = IsGlobal ? Target : propertyAnimation.Target; Length += propertyAnimation.Length; Parent.Add(0, 1, propertyAnimation.CreateFarwardAnimation()); } Parent.Commit(Target, $"{nameof(ParallelAnimation)}", Rate, Length, AnimationEasing, GetFinishedAction()); }
private void OnButton3Clicked(object sender, EventArgs e) { Button button = (Button)sender; Xamarin.Forms.Animation parentAnimation = new Xamarin.Forms.Animation(); Xamarin.Forms.Animation upAnimation = new Xamarin.Forms.Animation(v => button.Scale = v, 1, 5, Easing.SpringIn, () => Debug.WriteLine("up finished")); parentAnimation.Add(0, 0.5, upAnimation); Xamarin.Forms.Animation downAnimation = new Xamarin.Forms.Animation(v => button.Scale = v, 5, 1, Easing.SpringOut, () => Debug.WriteLine("down finished")); parentAnimation.Insert(0.5, 1, downAnimation); parentAnimation.Commit(this, "Animation3", 16, 5000, null, (v, c) => Debug.WriteLine("parent finished: {0} {1}", v, c)); }
public override Xamarin.Forms.Animation OnAnimate() { var animation = new Xamarin.Forms.Animation(); foreach (var anim in Animations) { var beginAt = GetBeginAt(anim); var finishAt = GetFinishAt(anim); if (anim.Duration > 0) { finishAt = Math.Min(finishAt, beginAt + (double)anim.Duration / Duration); Debug.WriteLine($"FinishAt updated to {finishAt}"); } animation.Add(beginAt, finishAt, anim.OnAnimate()); } return(animation); }