public Animation TransformAnimation(AnimatedView view, int time) { var animationFrame = Animation.CountKeyFrames(time); if (animationFrame == null) { return(null); } CGRect nativeViewSize = new CGRect(view.X, view.Y, view.Width, view.Height); UIView nativeView = ConvertFormsToNative(view, nativeViewSize); AnimationFrame animationFrameTranform = Animation.AnimationFrameForTime(time) as AnimationFrame; // Store the current transform CGAffineTransform tempTransform = nativeView.Transform; // Reset rotation to 0 to avoid warping nativeView.Transform = CGAffineTransform.MakeRotation(0); var nativeFrameSize = new CGRect(animationFrameTranform.xPosition, animationFrameTranform.yPosition, animationFrameTranform.frameSize.Width, animationFrameTranform.frameSize.Height); nativeView.Frame = nativeFrameSize; // Return to original transform nativeView.Transform = tempTransform; return(this); }
public AnimationFrameBase FrameForTimeTransform(AnimatedView view, int time, AnimationFrameBase startKeyFrameBase, AnimationFrameBase endKeyFrameBase) { var startKeyFrame = startKeyFrameBase as AnimationFrame; var endKeyFrame = endKeyFrameBase as AnimationFrame; int startTime = startKeyFrame.Time; int endTime = endKeyFrame.Time; CGRect startLocation = new CGRect(startKeyFrame.xPosition, startKeyFrame.yPosition, startKeyFrame.frameSize.ToSizeF().Width, startKeyFrame.frameSize.ToSizeF().Height); CGRect endLocation = new CGRect(endKeyFrame.xPosition, endKeyFrame.yPosition, endKeyFrame.frameSize.ToSizeF().Width, endKeyFrame.frameSize.ToSizeF().Height); CGRect nativeViewSize = new CGRect(view.X, view.Y, view.Width, view.Height); UIView nativeView = ConvertFormsToNative(view, nativeViewSize); CGRect frame = nativeView.Frame; frame.Location = new PointF( Animation.TweenValueForStartTime(startTime, endTime, (Single)startLocation.GetMinX(), (Single)endLocation.GetMinX(), time), Animation.TweenValueForStartTime(startTime, endTime, (Single)startLocation.GetMinY(), (Single)endLocation.GetMinY(), time)); frame.Size = new SizeF(Animation.TweenValueForStartTime(startTime, endTime, (Single)startLocation.Width, (Single)endLocation.Width, time), Animation.TweenValueForStartTime(startTime, endTime, (Single)startLocation.Height, (Single)endLocation.Height, time)); AnimationFrame animationFrame = new AnimationFrame(); animationFrame.xPosition = (int)nativeView.Center.X; animationFrame.yPosition = (int)nativeView.Center.Y; animationFrame.frameSize = new Xamarin.Forms.Size(frame.Width, frame.Height); return(animationFrame); }
public AnimationFrameBase FrameForTimeHide(int time, AnimationFrameBase startKeyFrame, AnimationFrameBase endKeyFrame) { AnimationFrame animationFrame = new AnimationFrame(); animationFrame.Hidden = (time == startKeyFrame.Time ? startKeyFrame : endKeyFrame).Hidden; return(animationFrame); }
public Animation Transform3DAnimation(AnimatedView view, int time) { var animationFrame = Animation.CountKeyFrames(time); if (animationFrame == null) { return(this); } CGRect nativeViewSize = new CGRect(view.X, view.Y, view.Width, view.Height); UIView nativeView = ConvertFormsToNative(view, nativeViewSize); AnimationFrame aFrame = (AnimationFrame)Animation.AnimationFrameForTime(time); if (aFrame.Transform == null) { return(null); } CATransform3D transform = CATransform3D.Identity; transform.m34 = aFrame.Transform.M34; transform = CATransform3D.MakeRotation( aFrame.Transform.Rotate.Angle, aFrame.Transform.Rotate.X, aFrame.Transform.Rotate.Y, aFrame.Transform.Rotate.Z); // Scale transform.m11 = aFrame.Transform.Scale.Sx; transform.m22 = aFrame.Transform.Scale.Sy; transform.m33 = aFrame.Transform.Scale.Sz; // Translate transform.m41 = aFrame.Transform.Translate.Tx; transform.m42 = aFrame.Transform.Translate.Ty; transform.m43 = aFrame.Transform.Translate.Tz; // transform.Rotate ( // aFrame.Transform.Rotate.Angle, // aFrame.Transform.Rotate.X, // aFrame.Transform.Rotate.Y, // aFrame.Transform.Rotate.Z); // transform.Scale ( // aFrame.Transform.Scale.Sx, // aFrame.Transform.Scale.Sy, // aFrame.Transform.Scale.Sz); // // transform.Translate ( // aFrame.Transform.Translate.Tx, // aFrame.Transform.Translate.Ty, // aFrame.Transform.Translate.Tz); nativeView.Layer.Transform = transform; return(this); }
public AnimationFrameBase FrameForTimeScale(int time, AnimationFrameBase startKeyFrame, AnimationFrameBase endKeyFrame) { var animationFrame = new AnimationFrame(); animationFrame.Scale = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startKeyFrame.Scale, endKeyFrame.Scale, time); return(animationFrame); }
/// <summary> /// Set of all animations /// </summary> /// <param name="view">View.</param> /// <param name="time">Time.</param> /// public Animation AlphaAnimation(AnimatedView view, int time) { var animationFrame = Animation.CountKeyFrames(time); if (animationFrame == null) { return(null); } CGRect nativeViewSize = new CGRect(view.X, view.Y, view.Width, view.Height); UIView nativeView = ConvertFormsToNative(view, nativeViewSize); AnimationFrame animationFrameAlpha = Animation.AnimationFrameForTime(time) as AnimationFrame; nativeView.Alpha = animationFrameAlpha.Alpha; return(this); }
public Animation ScaleAnimation(AnimatedView view, int time) { var animationFrame = Animation.CountKeyFrames(time); if (animationFrame == null) { return(null); } CGRect nativeViewSize = new CGRect(view.X, view.Y, view.Width, view.Height); UIView nativeView = ConvertFormsToNative(view, nativeViewSize); AnimationFrame scaleAnimationFrame = (AnimationFrame)Animation.AnimationFrameForTime(time); float scale = scaleAnimationFrame.Scale; nativeView.Transform = CGAffineTransform.MakeScale(scale, scale); return(this); }
public Animation ColorAnimation(AnimatedView view, int time) { var animationFrame = Animation.CountKeyFrames(time); if (animationFrame == null) { return(null); } var nativeViewSize = new CGRect(view.X, view.Y, view.Width, view.Height); var nativeView = ConvertFormsToNative(view, nativeViewSize); AnimationFrame colorAnimationFrame = Animation.AnimationFrameForTime(time) as AnimationFrame; var nativeColor = colorAnimationFrame.frameColor.ToUIColor(); nativeView.BackgroundColor = nativeColor; return(this); }
public AnimationFrameBase FrameForTime3D(int time, AnimationFrameBase startKeyFrameBase, AnimationFrameBase endKeyFrameBase) { var startKeyFrame = startKeyFrameBase as AnimationFrame; var endKeyFrame = endKeyFrameBase as AnimationFrame; AnimationFrame animationFrame = new AnimationFrame(); animationFrame.Transform = new Transform3D(); animationFrame.Transform.M34 = startKeyFrame.Transform.M34; //if (startKeyFrame.Transform.Translate != null) { Transform3DTranslate translate = new Transform3DTranslate(); translate.Tx = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startKeyFrame.Transform.Translate.Tx, endKeyFrame.Transform.Translate.Tx, time); translate.Ty = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startKeyFrame.Transform.Translate.Ty, endKeyFrame.Transform.Translate.Ty, time); translate.Tz = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startKeyFrame.Transform.Translate.Tz, endKeyFrame.Transform.Translate.Tz, time); animationFrame.Transform.Translate = translate; //} //if (startKeyFrame.Transform.Rotate != null) { Transform3DRotate rotate = new Transform3DRotate(); rotate.Angle = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startKeyFrame.Transform.Rotate.Angle, endKeyFrame.Transform.Rotate.Angle, time); rotate.X = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startKeyFrame.Transform.Rotate.X, endKeyFrame.Transform.Rotate.X, time); rotate.Y = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startKeyFrame.Transform.Rotate.Y, endKeyFrame.Transform.Rotate.Y, time); rotate.Z = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startKeyFrame.Transform.Rotate.Z, endKeyFrame.Transform.Rotate.Z, time); animationFrame.Transform.Rotate = rotate; //} //if (startKeyFrame.Transform.Scale != null) { Transform3DScale scale = new Transform3DScale(); scale.Sx = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startKeyFrame.Transform.Scale.Sx, endKeyFrame.Transform.Scale.Sx, time); scale.Sy = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startKeyFrame.Transform.Scale.Sy, endKeyFrame.Transform.Scale.Sy, time); scale.Sz = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startKeyFrame.Transform.Scale.Sz, endKeyFrame.Transform.Scale.Sz, time); animationFrame.Transform.Scale = scale; //} return(animationFrame); }
public Animation HideAnimation(AnimatedView view, int time) { var animationFrame = Animation.CountKeyFrames(time); if (animationFrame == null) { return(null); } var renderer = Platform.CreateRenderer(view); Platform.SetRenderer(view, renderer); nativeView = renderer.ViewGroup.RootView; AnimationFrame hideAnimationFrame = Animation.AnimationFrameForTime(time) as AnimationFrame; nativeView.Visibility = hideAnimationFrame.Visibility; return(this); }
public Animation ColorAnimation(AnimatedView view, int time) { var animationFrame = Animation.CountKeyFrames(time); if (animationFrame == null) { return(null); } var renderer = Platform.CreateRenderer(view); Platform.SetRenderer(view, renderer); nativeView = renderer.ViewGroup.RootView; AnimationFrame colorAnimationFrame = Animation.AnimationFrameForTime(time) as AnimationFrame; nativeView.SetBackgroundColor(colorAnimationFrame.Color); return(this); }
public Animation ScaleAnimation(AnimatedView view, int time) { var animationFrame = Animation.CountKeyFrames(time); if (animationFrame == null) { return(null); } var renderer = Platform.CreateRenderer(view); Platform.SetRenderer(view, renderer); nativeView = renderer.ViewGroup.RootView; AnimationFrame scaleAnimationFrame = Animation.AnimationFrameForTime(time) as AnimationFrame; float scale = scaleAnimationFrame.Scale; //nativeView.Transform = CGAffineTransform.MakeScale (scale, scale); return(this); }
public AnimationFrameBase FrameForTimeColor(int time, AnimationFrameBase startKeyFrameBase, AnimationFrameBase endKeyFrameBase) { var startKeyFrame = startKeyFrameBase as AnimationFrame; var endKeyFrame = endKeyFrameBase as AnimationFrame; AnimationFrame animationFrame = new AnimationFrame(); float startRed = 0.0f, startBlue = 0.0f, startGreen = 0.0f, startAlpha = 0.0f; float endRed = 0.0f, endBlue = 0.0f, endGreen = 0.0f, endAlpha = 0.0f; if (GetRed(startRed, startGreen, startBlue, startAlpha, startKeyFrame.frameColor.ToUIColor()) && GetRed(endRed, endGreen, endBlue, endAlpha, endKeyFrame.frameColor.ToUIColor())) { float red = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startRed, endRed, time); float green = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startGreen, endGreen, time); float blue = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startBlue, endBlue, time); float alpha = Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startAlpha, endAlpha, time); animationFrame.frameColor = Xamarin.Forms.Color.FromRgba(red, green, blue, alpha); } return(animationFrame); }
public AnimationFrameBase FrameForTimeColor(int time, AnimationFrameBase startKeyFrameBase, AnimationFrameBase endKeyFrameBase) { var startKeyFrame = startKeyFrameBase as AnimationFrame; var endKeyFrame = endKeyFrameBase as AnimationFrame; AnimationFrame animationFrame = new AnimationFrame(); int startRed = 0, startBlue = 0, startGreen = 0, startAlpha = 0; int endRed = 0, endBlue = 0, endGreen = 0, endAlpha = 0; if (GetRGBA(out startRed, out startGreen, out startBlue, out startAlpha, startKeyFrame.Color) && GetRGBA(out endRed, out endGreen, out endBlue, out endAlpha, endKeyFrame.Color)) { int red = (int)(Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startRed, endRed, time)); int green = (int)(Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startGreen, endGreen, time)); int blue = (int)(Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startBlue, endBlue, time)); int alpha = (int)(Animation.TweenValueForStartTime(startKeyFrame.Time, endKeyFrame.Time, startAlpha, endAlpha, time)); animationFrame.Color = Android.Graphics.Color.Argb(alpha, red, green, blue); } return(animationFrame); }