示例#1
0
        protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.View> e)
        {
            base.OnElementChanged(e);

            if (((XNFlipView)e.NewElement) != null)
            {
                // Calculating Camera Distance to be used at Animation Runtime
                // https://forums.xamarin.com/discussion/49978/changing-default-perspective-after-rotation
                var distance = 8000;
                _cameraDistance = Context.Resources.DisplayMetrics.Density * distance;

                _animateYAxis0To90.SetDuration(((XNFlipView)Element).AnimationTime);
                _animateYAxis90To180.SetDuration(((XNFlipView)Element).AnimationTime);
            }
        }
示例#2
0
        private void animateIn(View view)
        {
            ObjectAnimator translationX = ObjectAnimator.OfFloat(view, "translationX", 0, -spacing);

            translationX.SetDuration(200);
            translationX.Start();
        }
        protected override void OnElementChanged(ElementChangedEventArgs <Button> e)
        {
            base.OnElementChanged(e);

            if (e.NewElement != null)
            {
                _textColorChangingAnimation = ObjectAnimator.OfInt(this.Control, "textColor",
                                                                   Color.Red.ToAndroid(), Color.Blue.ToAndroid());
                _textColorChangingAnimation.SetDuration(1000);
                _textColorChangingAnimation.SetEvaluator(new ArgbEvaluator());
                _textColorChangingAnimation.RepeatCount = ValueAnimator.Infinite;
                _textColorChangingAnimation.RepeatMode  = ValueAnimatorRepeatMode.Reverse;

                ((AnimatingTextColorButton)e.NewElement).PropertyChanged += AnimatingTextColorButton_PropertyChanged;

                if (((AnimatingTextColorButton)e.NewElement).IsTextColorAnimating)
                {
                    StartTextColorAnimation();
                }
            }

            if (e.OldElement != null)
            {
                ((AnimatingTextColorButton)e.OldElement).PropertyChanged -= AnimatingTextColorButton_PropertyChanged;
            }
        }
        private Command AndroidNativeFlipBackToFront(FilppableContentViewXF newElementInstance)
        {
            return(new Command(() =>
            {
                SetCameraDistance(_cameraDistance);

                ObjectAnimator animateYAxis180To270 = ObjectAnimator.OfFloat(this, "RotationY", 180f, 270f);
                animateYAxis180To270.SetDuration(300);

                animateYAxis180To270.Start();
                animateYAxis180To270.Update += (sender, args) =>
                {
                    // On every animation Frame we have to update the Camera Distance since Xamarin overrides it somewhere
                    SetCameraDistance(_cameraDistance);
                };

                animateYAxis180To270.AnimationEnd += (sender, args) =>
                {
                    newElementInstance.
                    SwitchViewsFlipFromBackToFront();

                    ObjectAnimator animateYAxis270To360 = ObjectAnimator.OfFloat(this, "RotationY", 270f, 360f);
                    animateYAxis270To360.SetDuration(300);
                    animateYAxis270To360.Start();
                    animateYAxis270To360.Update += (sender1, args1) =>
                    {
                        // On every animation Frame we have to update the Camera Distance since Xamarin overrides it somewhere
                        SetCameraDistance(_cameraDistance);
                    };
                };
            }));
        }
示例#5
0
        private void TapAnimation(long duration, byte startAlpha, byte endAlpha)
        {
            if (IsDisposed)
            {
                return;
            }

            overlayAnimation.BringToFront();

            var start = tapColor;
            var end   = tapColor;

            start.A = startAlpha;
            end.A   = endAlpha;

            ClearAnimation();
            animator = ObjectAnimator.OfObject(overlayAnimation,
                                               "BackgroundColor",
                                               new ArgbEvaluator(),
                                               start.ToArgb(),
                                               end.ToArgb());
            animator.SetDuration(duration);
            animator.RepeatCount = 0;
            animator.RepeatMode  = ValueAnimatorRepeatMode.Restart;
            animator.Start();
            animator.AnimationEnd += OnAnimationEnd;
        }
        private void SmoothScrollBrowser(bool down)
        {
            var delay = (DateTime.Now - scrollLastTime).TotalMilliseconds;

            if (scrollLastDirection.HasValue && scrollLastDirection == down && SCROLL_ACCEL_DELAY_MS > delay)
            {
                scrollAccel += SCROLL_ACCEL_INCREMENT;
            }
            else
            {
                scrollAccel = 0;
            }

            scrollLastTime      = DateTime.Now;
            scrollLastDirection = down;
            ObjectAnimator anim = ObjectAnimator.OfInt(_browserView, "scrollY", _browserView.ScrollY, _browserView.ScrollY + (down ? 300 + scrollAccel : -300 - scrollAccel));

            if (_currentScroll != null)
            {
                _currentScroll.End();
                anim.SetInterpolator(new DecelerateInterpolator());
            }
            else
            {
                anim.SetInterpolator(new AccelerateDecelerateInterpolator());
            }
            anim.SetDuration(500).Start();
            _currentScroll = anim;
        }
        public bool OnPreDraw()
        {
            this.ViewTreeObserver.RemoveOnPreDrawListener(this);

            // Lets animate the view sliding into its new position. Remember: the listview cell corresponding the mobile item is invisible so it looks like
            // the switch view is just sliding into position
            ObjectAnimator anim = ObjectAnimator.OfFloat(_switchView, "TranslationY", _switchView.TranslationY, _switchView.TranslationY + _diff);

            anim.SetDuration(400);
            anim.Start();

//			((IDraggableListAdapter)Adapter).SwapItems (_originalPosition, _switchViewPosition);

//			mobileView = GetViewForID (mMobileItemId);
//
            anim.AnimationEnd += (sender, e) => {
//				mobileView.Visibility = ViewStates.Visible;

//				((IDraggableListAdapter)Adapter).SwapItems (_originalPosition, _switchViewPosition);
//				try {
//					((IDraggableListAdapter)Adapter).SwapItems (this.GetPositionForView (mobileView), GetPositionForView (_switchView));
//				} catch (Exception e1) {
//
//				}
            };

            mTotalOffset += _deltaY;

            return(true);
        }
示例#8
0
        private void CreateCustomAnimation()
        {
            FloatingActionMenu menu3 = FindViewById <FloatingActionMenu>(Resource.Id.menu3);

            AnimatorSet set = new AnimatorSet();

            ObjectAnimator scaleOutX = ObjectAnimator.OfFloat(menu3.MenuIconView, "scaleX", 1.0f, 0.2f);
            ObjectAnimator scaleOutY = ObjectAnimator.OfFloat(menu3.MenuIconView, "scaleY", 1.0f, 0.2f);

            ObjectAnimator scaleInX = ObjectAnimator.OfFloat(menu3.MenuIconView, "scaleX", 0.2f, 1.0f);
            ObjectAnimator scaleInY = ObjectAnimator.OfFloat(menu3.MenuIconView, "scaleY", 0.2f, 1.0f);

            scaleOutX.SetDuration(50);
            scaleOutY.SetDuration(50);

            scaleInX.SetDuration(150);
            scaleInY.SetDuration(150);

            scaleInX.AnimationStart += (object sender, EventArgs e) =>
            {
                menu3.MenuIconView.SetImageResource(menu3.IsOpened ? Resource.Drawable.ic_close : Resource.Drawable.ic_star);
            };

            set.Play(scaleOutX).With(scaleOutY);
            set.Play(scaleInX).With(scaleInY).After(scaleOutX);
            set.SetInterpolator(new OvershootInterpolator(2));

            menu3.IconToggleAnimatorSet = set;
        }
示例#9
0
        private void AnimatoOnAppearance(TextView logo, Action onEnd = null)
        {
            logo.ScaleX = 0;
            logo.ScaleY = 0;

            var            duration   = 500;
            ObjectAnimator scaleDownX = ObjectAnimator.OfFloat(logo, "ScaleX", 1f);
            ObjectAnimator scaleDownY = ObjectAnimator.OfFloat(logo, "ScaleY", 1f);

            scaleDownX.SetDuration(duration);
            scaleDownY.SetDuration(duration);

            AnimatorSet scaleDown = new AnimatorSet();

            // scaleDown.SetDuration(duration);
            scaleDown.Play(scaleDownX).With(scaleDownY);
            // scaleDown.AnimationEnd += (s, e) => onEnd?.Invoke();

            scaleDown.Start();


            /*
             * new Android.OS.Handler().PostDelayed(() =>
             * {
             *  var bar = FindViewById(Resource.Id.progressBar) as ProgressBar;
             *  bar.Visibility = ViewStates.Visible;
             * }, 600);//*/
        }
示例#10
0
        /**
         * Animate a view between start and end X/Y locations, using either old (pre-3.0) or
         * new animation APIs.
         */

        private void moveView(View view, float startX, float endX, float startY, float endY, Runnable endAction)
        {
            Runnable finalEndAction = endAction;

            if (isRuntimePostGingerbread())
            {
                view.Animate().SetDuration(MOVE_DURATION);
                if (startX != endX)
                {
                    ObjectAnimator anim = ObjectAnimator.OfFloat(view, View.X, startX, endX);
                    anim.SetDuration(MOVE_DURATION);
                    anim.Start();
                    setAnimatorEndAction(anim, endAction);
                    endAction = null;
                }
                if (startY != endY)
                {
                    ObjectAnimator anim = ObjectAnimator.OfFloat(view, View.Y, startY, endY);
                    anim.SetDuration(MOVE_DURATION);
                    anim.Start();
                    setAnimatorEndAction(anim, endAction);
                }
            }
            else
            {
                TranslateAnimation translator = new TranslateAnimation(startX, endX, startY, endY);
                translator.Duration = (MOVE_DURATION);
                view.StartAnimation(translator);
                if (endAction != null)
                {
                    view.Animation.SetAnimationListener(new CustomAnimatonListenerAdapter(finalEndAction));
                }
            }
        }
示例#11
0
        public ObjectAnimator CreateNoteAnimation_FadeOnly(Position position)
        {
            const float    TRANSPARENT      = 0;
            const long     DEFAULT_DURATION = 1000;
            DisplayMetrics screenDimensions = Generic.GetScreenDimentions(_currentActivity);
            //TODO: Add string positions as well.

            FretMetrics fretMetrics = GetFretMetrics(position.Fret);
            int         Y_dest      = fretMetrics.GetVerticalCenter() - _noteCircle.Height / 2;
            int         X_dest      = fretMetrics.GetHorizontalCenter() - _noteCircle.Width / 2;

            //Set initial location.
            _noteCircle.SetX(X_dest);
            _noteCircle.SetY(Y_dest);

            ObjectAnimator objAnimFadeOut = ObjectAnimator.OfFloat(_noteCircle, "Alpha", TRANSPARENT);

            objAnimFadeOut.SetDuration(DEFAULT_DURATION);

            objAnimFadeOut.AnimationEnd += (object sender, EventArgs e) =>
            {
                OnNoteGone(this, new EventArgs());
            };

            return(objAnimFadeOut);
        }
        private void Button_Touch(object sender, View.TouchEventArgs e)
        {
            ImageButton button = sender as ImageButton;

            switch (e.Event.Action)
            {
            case MotionEventActions.Down:
                ObjectAnimator animatorX = ObjectAnimator.OfFloat(button, "scaleX", button.ScaleX, 1.25f);
                animatorX.SetDuration(duration);
                ObjectAnimator animatorY = ObjectAnimator.OfFloat(button, "scaleY", button.ScaleY, 1.25f);
                animatorY.SetDuration(duration);
                var animSet = new AnimatorSet();
                animSet.PlayTogether(animatorX, animatorY);
                animSet.Start();
                break;

            case MotionEventActions.Move:
                break;

            case MotionEventActions.Up:
                ObjectAnimator animatorX1 = ObjectAnimator.OfFloat(button, "scaleX", button.ScaleX, 1f);
                animatorX1.SetDuration(duration);
                ObjectAnimator animatorY1 = ObjectAnimator.OfFloat(button, "scaleY", button.ScaleY, 1f);
                animatorY1.SetDuration(duration);
                var reverseanimSet = new AnimatorSet();
                reverseanimSet.PlayTogether(animatorX1, animatorY1);
                reverseanimSet.Start();
                break;
            }
        }
示例#13
0
        private void TapAnimation(long duration, byte startAlpha = 255, byte endAlpha = 0)
        {
            if (IsDisposed)
            {
                return;
            }

            if (_viewOverlay.Parent == null)
            {
                Container.AddView(_viewOverlay);
            }
            _viewOverlay.BringToFront();

            var start = _color;
            var end   = _color;

            start.A = startAlpha;
            end.A   = endAlpha;

            _animator = ObjectAnimator.OfObject(_viewOverlay, "BackgroundColor", new ArgbEvaluator(), start.ToArgb(), end.ToArgb());
            _animator.SetDuration(duration);
            _animator.RepeatCount = 0;
            _animator.RepeatMode  = ValueAnimatorRepeatMode.Restart;
            _animator.Start();
            _animator.AnimationEnd += AnimationOnAnimationEnd;
        }
示例#14
0
        public void SetDesLikeDirection()
        {
            try
            {
                ValueAnimator rotation = ObjectAnimator.OfPropertyValuesHolder(CardStack.TopView, PropertyValuesHolder.OfFloat("rotation", -10f));
                rotation.SetDuration(200);
                ValueAnimator translateX = ObjectAnimator.OfPropertyValuesHolder(CardStack.TopView, PropertyValuesHolder.OfFloat("translationX", 0f, -2000f));
                ValueAnimator translateY = ObjectAnimator.OfPropertyValuesHolder(CardStack.TopView, PropertyValuesHolder.OfFloat("translationY", 0f, -500f));

                translateX.StartDelay = 100;
                translateY.StartDelay = 100;
                translateX.SetDuration(500);
                translateY.SetDuration(500);

                AnimatorSet cardAnimationSet = new AnimatorSet();
                cardAnimationSet.PlayTogether(rotation, translateX, translateY);

                ObjectAnimator overlayAnimator = ObjectAnimator.OfFloat(CardStack.TopView.OverlayContainer, "alpha", 0f, 1f);
                overlayAnimator.SetDuration(200);
                AnimatorSet overlayAnimationSet = new AnimatorSet();
                overlayAnimationSet.PlayTogether(overlayAnimator);

                CardStack.Swipe(SwipeDirection.Left, overlayAnimationSet);

                //int index = CardStack.TopIndex - 1;
                ////CardContainerView view = CardStack.BottomView;
                //if (index > -1)
                //    CardDisappeared(index);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
        private int InsertOntoView(AViews.View view, DragItem item)
        {
            var positionEntered   = GetListPositionForView(view);
            var correctedPosition = positionEntered;

            // If the view already has a translation, we need to adjust the position
            // If the view has a positive translation, that means that the current position
            // is actually one index down then where it started.
            // If the view has a negative translation, that means it actually moved
            // up previous now we will need to move it down.
            if (view.TranslationY > 0)
            {
                correctedPosition += 1;
            }
            else if (view.TranslationY < 0)
            {
                correctedPosition -= 1;
            }

            // If the current index of the dragging item is bigger than the target
            // That means the dragging item is moving up, and the target view should
            // move down, and vice-versa
            var translationCoef = item.Index > correctedPosition ? 1 : -1;

            // We translate the item as much as the height of the drag item (up or down)
            var translationTarget = view.TranslationY + (translationCoef * item.View.Height);

            ObjectAnimator anim = ObjectAnimator.OfFloat(view, "TranslationY", view.TranslationY, translationTarget);

            anim.SetDuration(100);
            anim.Start();

            return(correctedPosition);
        }
        public static ObjectAnimator CreateFadeOutAnimation(Java.Lang.Object target, int duration, EventHandler endAnimationHandler)
        {
            ObjectAnimator oa = ObjectAnimator.OfFloat(target, ALPHA, INVISIBLE);

            oa.SetDuration(duration).AnimationEnd += endAnimationHandler;

            return(oa);
        }
示例#17
0
        private void startActionBarAnimation()
        {
            ObjectAnimator actionBarAnimation = ObjectAnimator.OfFloat(_actionBarView, ROTATION, GUILLOTINE_OPENED_ANGLE, ACTION_BAR_ROTATION_ANGLE);

            actionBarAnimation.SetDuration((long)(_duration * (GuillotineInterpolator.FIRST_BOUNCE_TIME + GuillotineInterpolator.SECOND_BOUNCE_TIME)));
            actionBarAnimation.SetInterpolator(new ActionBarInterpolator());
            actionBarAnimation.Start();
        }
示例#18
0
 private void SetupLoaderAnimation()
 {
     beatAnimation = ObjectAnimator.OfPropertyValuesHolder(view.FindViewById <ImageView>(Resource.Id.imgLoaderLogo), PropertyValuesHolder.OfFloat("scaleX", 1.2f), PropertyValuesHolder.OfFloat("scaleY", 1.2f));
     beatAnimation.SetDuration(300);
     beatAnimation.RepeatCount = ValueAnimator.Infinite;
     beatAnimation.RepeatMode  = ValueAnimatorRepeatMode.Reverse;
     beatAnimation.Start();
 }
示例#19
0
        ObjectAnimator XAnimator(long duration, EasingFunction easing)
        {
            ObjectAnimator animatorX = ObjectAnimator.OfFloat(this, "phaseX", 0f, 1f);

            animatorX.SetInterpolator(new AnimationInterpolator(easing));
            animatorX.SetDuration(duration);
            return(animatorX);
        }
示例#20
0
        private void CreateAnimation()
        {
            ObjectAnimator anim = ObjectAnimator.OfInt(pBar, "progress", Element.Minimun, Element.Value);

            anim.SetDuration(Element.AnimationDuration);
            anim.SetInterpolator(new DecelerateInterpolator());
            anim.Start();
        }
示例#21
0
        private static void SlidingAnimation(ViewHolder holder, bool goesDown)
        {
            ObjectAnimator animatorTranslateY = ObjectAnimator.OfFloat(holder.ItemContent, "translationY", goesDown ? 100 : -100, 0);

            animatorTranslateY.SetDuration(500);

            animatorTranslateY.Start();
        }
示例#22
0
        /// <summary>
        /// Animates the note from the bottom to the top, and positions it depending on its fret position.
        /// </summary>
        /// <returns>Returns the animation of this NoteRepresentation.</returns>
        public ObjectAnimator CreateNoteAnimation()
        {
            const float    TRANSPARENT      = 0;
            DisplayMetrics screenDimensions = Generic.GetScreenDimentions(_currentActivity);

            FretMetrics fretMetrics = GetFretMetrics(_note.Position.Fret);

            //TODO: Add string positions as well.

            //Set initial location.
            _noteCircle.SetX(fretMetrics.GetHorizontalCenter() - _noteCircle.Width / 2);
            _noteCircle.SetY(screenDimensions.HeightPixels);

            int Y_dest = fretMetrics.GetVerticalCenter() - _noteCircle.Height / 2;

            ObjectAnimator objAnim = ObjectAnimator.OfFloat(_noteCircle, "Y", Y_dest);

            objAnim.SetDuration((long)_note.Duration);
            objAnim.StartDelay = (long)_note.Delay;

            objAnim.AnimationEnd += (object sender, EventArgs e) =>
            {
                ObjectAnimator objAnimFadeOut = ObjectAnimator.OfFloat(_noteCircle, "Alpha", TRANSPARENT);
                objAnimFadeOut.SetDuration((long)_note.Duration);
                objAnimFadeOut.Start();

                //Start capturing of note's sound input.
                OnNoteArraival(this, new OnNoteArraivalArgs(_note.Hertz));

                objAnimFadeOut.AnimationEnd += (object sender2, EventArgs e2) =>
                {
                    //Note's sound input window closes.
                    OnNoteGone(this, new EventArgs());
                };
            };

            return(objAnim);

            /*PropertyViewAnimator pva = new PropertyViewAnimator(_noteCircle);
             * //Start
             * pva.Animate()
             *  .SetDuration((int)(_note.Duration))
             *  .SetStartDelay((int)(_note.Delay))
             *  .Y(Y_dest_start)
             *  .WithEndAction(new Runnable(() => {
             *      //Start capturing of note's sound input.
             *      //Raise StartNoteCapture event.
             *      pva.Alpha(transparent).WithEndAction(new Runnable(() => {
             *          //Note's sound input window closes.
             *          //Raise EndNoteCapture event.
             *      }));
             *  }));
             * //Dilemma:
             * //Middle and End.
             * //But the animation does not happen here, it happens in AnimatorSet.
             *
             * return pva;*/
        }
示例#23
0
        private ObjectAnimator YAnimator(long duration, EasingFunction easing)
        {
            ObjectAnimator animatorY = ObjectAnimator.OfFloat(this, "phaseY", 0f, 1f);

            animatorY.SetInterpolator(new AnimationInterpolator(easing));
            animatorY.SetDuration(duration);

            return(animatorY);
        }
示例#24
0
        public void StartTranslateBottomAnimation()
        {
            float          translationYFrom = -(260 * parentWidth) / 700;
            float          translationYTo   = (360 * parentWidth) / 700;
            ObjectAnimator translationY     = ObjectAnimator.OfFloat(this, "translationY", translationYFrom, translationYTo);

            translationY.SetDuration(650);
            translationY.Start();
        }
        public static ViewPropertyAnimator ScrollY(this ViewPropertyAnimator vpa, ImageView imgView, params int[] values)
        {
            ObjectAnimator objAnim = ObjectAnimator.OfInt(imgView, "ScrollY", values);

            objAnim.SetDuration(vpa.Duration);
            objAnim.StartDelay = vpa.StartDelay;
            objAnim.Start();
            return(vpa);
        }
        public override ObjectAnimator GetInitialAnimator(Android.Content.Context context)
        {
            ObjectAnimator animator = ObjectAnimator.OfPropertyValuesHolder(
                PropertyValuesHolder.OfFloat("alpha", 0.5f, 1f),
                PropertyValuesHolder.OfFloat("rotation", 60f, 0f));

            animator.SetDuration((long)(200 * mSpeedFactor));
            return(animator);
        }
        public static ViewPropertyAnimator ScrollX(this ViewPropertyAnimator vpa, ImageView imgView, params int[] values)
        {
            ObjectAnimator objAnim = ObjectAnimator.OfInt(imgView, "ScrollX", values);

            objAnim.SetDuration(vpa.Duration / 2); //Divide by 2 so it will take less time.
            objAnim.StartDelay = vpa.StartDelay;
            objAnim.Start();
            return(vpa);
        }
示例#28
0
        public virtual void Show()
        {
            ObjectAnimator animator = ObjectAnimator.OfFloat(this, "y", showPosition);

            animator.SetInterpolator(new BounceInterpolator());
            animator.SetDuration(1500);
            animator.Start();
            isShow = true;
        }
        private void RemovePicture(int index)
        {
            removeIndex = index;
            ObjectAnimator animator = ObjectAnimator.OfFloat(GetChildFromDrawOrder(index), "Alpha", 0);

            animator.SetDuration(tweenTime);
            animator.AnimationEnd += Animator_AnimationEnd;
            animator.Start();
        }
示例#30
0
        public virtual void Hide()
        {
            ObjectAnimator animator = ObjectAnimator.OfFloat(this, "y", hidePosition);

            animator.SetInterpolator(new BounceInterpolator());
            animator.SetDuration(1500);
            animator.Start();

            isShow = false;
        }
 private void CreateAnimation()
 {
     if (animation == null)
     {
         animation = ObjectAnimator.OfFloat(ball, "y", ball.Y, Height - 50f);
         animation.SetDuration(1500);
         animation.SetInterpolator(new AccelerateInterpolator(2f));
         animation.Update += delegate
         {
             Invalidate();
         };
     }
 }