示例#1
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;
        }
示例#2
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;
        }
示例#3
0
        void SetLocationPin(LatLng finalLatLng)
        {
            if (locationPin != null)
            {
                locationPin.Remove();
                locationPin = null;
            }
            var proj     = map.Projection;
            var location = proj.ToScreenLocation(finalLatLng);

            location.Offset(0, -(35.ToPixels ()));
            var startLatLng = proj.FromScreenLocation(location);

            new Handler(Activity.MainLooper).PostDelayed(() => {
                var opts = new MarkerOptions()
                           .SetPosition(startLatLng)
                           .SetTitle(SearchPinId)
                           .SetIcon(BitmapDescriptorFactory.DefaultMarker(BitmapDescriptorFactory.HueViolet));
                var marker   = map.AddMarker(opts);
                var animator = ObjectAnimator.OfObject(marker, "position", new LatLngEvaluator(), startLatLng, finalLatLng);
                animator.SetDuration(1000);
                animator.SetInterpolator(new Android.Views.Animations.BounceInterpolator());
                animator.Start();
                locationPin = marker;
            }, 800);
        }
示例#4
0
        /**
         * Resets all the appropriate fields to a default state while also animating
         * the hover cell back to its correct location.
         */
        void touchEventsEnded()
        {
            touchEventsEndedMobileView = getViewForID(mMobileItemId);
            if (mCellIsMobile || mIsWaitingForScrollFinish)
            {
                mCellIsMobile             = false;
                mIsWaitingForScrollFinish = false;
                mIsMobileScrolling        = false;
                mActivePointerId          = INVALID_POINTER_ID;

                // If the autoscroller has not completed scrolling, we need to wait for it to
                // finish in order to determine the final location of where the hover cell
                // should be animated to.
                if (mScrollState != 0)  //OnScrollListener.SCROLL_STATE_IDLE) {
                {
                    mIsWaitingForScrollFinish = true;
                    return;
                }

                mHoverCellCurrentBounds.OffsetTo(mHoverCellOriginalBounds.Left, touchEventsEndedMobileView.Top);
                ObjectAnimator hoverViewAnimator = ObjectAnimator.OfObject(mHoverCell, "bounds", this, mHoverCellCurrentBounds);
                hoverViewAnimator.AddUpdateListener(this);
                hoverViewAnimator.AddListener(new MyAnimatorListenerAdapter(this));
                hoverViewAnimator.Start();
            }
        }
        public override void Start(GoogleMap googleMap, IList <PositionModel> route)
        {
            _googleMap = googleMap;
            if (_firstRunAnimSet == null)
            {
                _firstRunAnimSet = new AnimatorSet();
            }
            else
            {
                _firstRunAnimSet.RemoveAllListeners();
                _firstRunAnimSet.End();
                _firstRunAnimSet.Cancel();

                _firstRunAnimSet = new AnimatorSet();
            }

            LatLng[] bangaloreRoute = route.Select(e => new LatLng(e.Lat.GetValueOrDefault(0), e.Lng.GetValueOrDefault(0))).ToArray();

            if (bangaloreRoute.Length == 0)
            {
                return;
            }
            var foregroundRouteAnimator = ObjectAnimator.OfObject(this, "routeIncreaseForward", new RouteEvaluator(), bangaloreRoute.ToArray <Object>());

            foregroundRouteAnimator.SetInterpolator(new LinearInterpolator());
            foregroundRouteAnimator.SetDuration((long)TimeSpan.FromMinutes(3).TotalMilliseconds);
            foregroundRouteAnimator.RepeatCount = ValueAnimator.Infinite;
            _firstRunAnimSet.PlaySequentially(foregroundRouteAnimator);
            _firstRunAnimSet.Start();
        }
示例#6
0
        public void Animate(PathSegment segment)
        {
            lock (_lockObject)
            {
                if (!_animatorSet.IsRunning)
                {
                    _pathSegment = segment;

                    _animatorSet = new AnimatorSet();
                    _animatorSet.AddListener(this);

                    var animators = new List <ObjectAnimator>();
                    foreach (var marker in _markers)
                    {
                        var positionAnimator = ObjectAnimator.OfObject(
                            marker,
                            "Position",
                            new MarkerPositionEvaluator(),
                            segment.FinalLocation.ToLatLng());

                        positionAnimator.AddListener(this);
                        positionAnimator.AddUpdateListener(this);
                        positionAnimator.SetDuration(Convert.ToInt64(segment.Duration.TotalMilliseconds));

                        animators.Add(positionAnimator);
                    }

                    _animatorSet.PlayTogether(animators.ToArray());
                    _animatorSet.Start();
                }
            }
        }
示例#7
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.PathAnimation);

            button      = FindViewById <Button>(Resource.Id.button);
            buttonProxy = AnimatorProxy.Wrap(button);

            var density = Resources.DisplayMetrics.Density;

            // Set up the path we're animating along
            var path = new AnimatorPath();

            path.MoveTo(0 * density, 0 * density);
            path.LineTo(0 * density, 300 * density);
            path.CurveTo(100 * density, 0 * density,
                         300 * density, 900 * density,
                         400 * density, 500 * density);

            // Set up the animation
            var points = path.Points.Select(p => (Java.Lang.Object)p).ToArray();
            var anim   = ObjectAnimator.OfObject(this, "buttonLocation", new PathEvaluator(), points);

            anim.SetDuration(1000);

            button.Click += delegate
            {
                anim.Start();
            };
        }
示例#8
0
        internal void AnimateHide(string name, Action <string> onEvaluated)
        {
            var title = collapsingToolbar.Title;
            var anim  = ObjectAnimator.OfObject(collapsingToolbar, "title", new CharSequenceEvaluator(onEvaluated),
                                                title, name);

            anim.SetDuration(600);
            anim.Start();
        }
        // Animate Marker on the map between retrieving positions
        private void AnimateMarkerOnMap(BitmapDescriptor icon, Marker markerToUpdate, LatLng newPosition, double?compassCourse, Position oldPosition)
        {
            markerToUpdate.SetIcon(icon);
            markerToUpdate.SetAnchor(.5f, ViewModel.Settings.ShowOrientedPins && compassCourse.HasValue ? .5f : 1f);

            var evaluator      = new LatLngEvaluator();
            var objectAnimator = ObjectAnimator.OfObject(markerToUpdate, "position", evaluator, new LatLng(oldPosition.Latitude, oldPosition.Longitude), newPosition);

            objectAnimator.SetAutoCancel(true);
            objectAnimator.SetDuration(5000);
            objectAnimator.SetInterpolator(new Android.Views.Animations.LinearInterpolator());
            objectAnimator.Start();
        }
示例#10
0
 private void CreateAnimation()
 {
     if (animation == null)
     {
         var startXY = new XYHolder(0f, 0f);
         var endXY   = new XYHolder(300f * density, 500f * density);
         animation = ObjectAnimator.OfObject(ballHolder, "xY", new XYEvaluator(), endXY);
         animation.SetDuration(1500);
         animation.Update += delegate
         {
             Invalidate();
         };
     }
 }
示例#11
0
        private void TapAnimation(long duration, byte startAlpha = 255, byte endAlpha = 0)
        {
            var start = _color;
            var end   = _color;

            start.A = startAlpha;
            end.A   = endAlpha;
            var animation = ObjectAnimator.OfObject(_viewOverlay, "BackgroundColor", new ArgbEvaluator(), start.ToArgb(), end.ToArgb());

            animation.SetDuration(duration);
            animation.RepeatCount = 0;
            animation.RepeatMode  = ValueAnimatorRepeatMode.Restart;
            animation.Start();
            animation.AnimationEnd += AnimationOnAnimationEnd;
        }
示例#12
0
        private void TapAnimation(long duration, byte startAlpha = 1, byte endAlpha = 0, bool remove = true)
        {
            _deleteLayer = remove;
            var start = _color;
            var end   = _color;

            start.A = startAlpha;
            end.A   = endAlpha;
            var animation = ObjectAnimator.OfObject(_layer, "BackgroundColor", new ArgbEvaluator(), start.ToArgb(), end.ToArgb());

            animation.SetDuration(duration);
            animation.RepeatCount = 0;
            animation.RepeatMode  = ValueAnimatorRepeatMode.Restart;
            animation.Start();
            animation.AnimationEnd += AnimationOnAnimationEnd;
        }
示例#13
0
        public void UpdateBoxPosition(bool isChecked)
        {
            box.Animate().X(isChecked ? box.LayoutParameters.Width : 0);

            int _on  = Color.Argb(255, 46, 125, 50).ToArgb();
            int _off = Color.Gray.ToArgb();

            ObjectAnimator animator;

            if (isChecked)
            {
                animator = ObjectAnimator.OfObject(this, "backgroundColor", new ArgbEvaluator(), _off, _on);
            }
            else
            {
                animator = ObjectAnimator.OfObject(this, "backgroundColor", new ArgbEvaluator(), _on, _off);
            }

            animator.SetDuration(200).Start();
        }
示例#14
0
        private void TouchEventsEnded()
        {
            ViewHolder viewHolderForItemId = FindViewHolderForItemId(mobileItemId);

            if (viewHolderForItemId == null)
            {
                return;
            }
            mobileViewTouchEventsEnded = viewHolderForItemId.ItemView;
            if (cellIsMobile || usWaitingForScrollFinish)
            {
                cellIsMobile             = false;
                usWaitingForScrollFinish = false;
                activePointerId          = INVALID_POINTER_ID;

                // If the autoscroller has not completed scrolling, we need to wait for it to
                // finish in order to determine the final location of where the hover cell
                // should be animated to.
                if (ScrollState != (int)Android.Widget.ScrollState.Idle)
                {
                    usWaitingForScrollFinish = true;
                    return;
                }

                hoverCellCurrentBounds.OffsetTo(mobileViewTouchEventsEnded.Left, mobileViewTouchEventsEnded.Top);

                ObjectAnimator hoverViewAnimator = ObjectAnimator.OfObject(hoverCell, "bounds",
                                                                           sBoundEvaluator, hoverCellCurrentBounds);
                hoverViewAnimator.AddUpdateListener(valueAnimatorUpdateListner);
                hoverViewAnimator.AddListener(rcAnimatorListener);
                hoverViewAnimator.Start();

                // Tell adpter movement of an item has completed.
                ((DraggableAdapter)GetAdapter()).MoveFinished();
            }
            else
            {
                TouchEventsCancelled();
            }
        }
示例#15
0
            void TouchEventsEnded()
            {
                mobileView = GetViewForID(mMobileItemId);
                if (mCellIsMobile)
                {
                    mCellIsMobile    = false;
                    mActivePointerId = INVALID_POINTER_ID;
                    ((IListAdapter)Adapter).MobileCellPosition = int.MinValue;

                    mHoverCellCurrentBounds.OffsetTo(mHoverCellOriginalBounds.Left, mobileView.Top);

                    ObjectAnimator hoverViewAnimator = ObjectAnimator.OfObject(mHoverCell, "Bounds", this, mHoverCellCurrentBounds);
                    hoverViewAnimator.Update         += HandleHoverAnimatorUpdate;
                    hoverViewAnimator.AnimationStart += HandleHoverAnimationStart;
                    hoverViewAnimator.AnimationEnd   += HandleHoverAnimationEnd;
                    hoverViewAnimator.Start();
                }
                else
                {
                    TouchEventsCancelled();
                }
            }