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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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);
        }
Esempio n. 14
0
        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);
        }