Esempio n. 1
0
        public void SetupInitialAnimations(Action callback = null)
        {
            int delay        = 10;
            var time         = Resources.GetInteger(Android.Resource.Integer.ConfigMediumAnimTime);
            var delayIncr    = (3 * time) / 4;
            var interpolator = new Android.Views.Animations.DecelerateInterpolator();
            ViewPropertyAnimator circleAnim = null;

            foreach (var id in circleIds)
            {
                var circle = circlesLayout.FindViewById(id);

                circle.ScaleX = .3f;
                circle.ScaleY = .3f;
                circle.Alpha  = 0;

                circleAnim = circle.Animate()
                             .ScaleX(1)
                             .ScaleY(1)
                             .Alpha(1)
                             .SetStartDelay(delay)
                             .SetDuration(time)
                             .SetInterpolator(interpolator);

                var last = id == circleIds.Last();
                if (last && callback != null)
                {
                    circleAnim.WithEndAction(new Run(callback));
                }

                circleAnim.Start();
                delay += delayIncr;
            }
        }
Esempio n. 2
0
        public void ShowNotification(string notification, string duration = null, string distance = null, int delay = 0)
        {
            notificationPanel.TranslationY =
                notificationPanel.Height + ((LinearLayout.LayoutParams)notificationPanel.LayoutParameters).BottomMargin;
            notificationPanel.TranslationX = 0;
            notificationPanel.ScaleX       = .9f;
            notificationPanel.Visibility   = ViewStates.Visible;
            lastTrip.Text = notification;
            if (duration == null || distance == null)
            {
                rideInfoPanel.Visibility = ViewStates.Invisible;
                lastTrip.TranslationY    = TypedValue.ApplyDimension(ComplexUnitType.Dip, 8, Resources.DisplayMetrics);
            }
            else
            {
                rideInfoPanel.Visibility = ViewStates.Visible;
                rideInfoPanel.FindViewById <TextView> (Resource.Id.timeText).Text     = duration;
                rideInfoPanel.FindViewById <TextView> (Resource.Id.distanceText).Text = distance;
                lastTrip.TranslationY = 0;
            }
            var time  = Resources.GetInteger(Android.Resource.Integer.ConfigLongAnimTime);
            var decel = new Android.Views.Animations.DecelerateInterpolator();

            notificationPanel.Animate().TranslationY(0).ScaleX(1).SetDuration(time).SetStartDelay(delay).SetInterpolator(decel).WithEndAction(new Run(() => {
                var accel = new Android.Views.Animations.AccelerateInterpolator();
                notificationPanel.Animate()
                .TranslationX(-Resources.DisplayMetrics.WidthPixels)
                .SetDuration(time)
                .SetStartDelay(6000)
                .SetInterpolator(accel)
                .WithEndAction(new Run(() => notificationPanel.Visibility = ViewStates.Invisible))
                .Start();
            })).Start();
        }
Esempio n. 3
0
 public override void RunPendingAnimations()
 {
     var interpolator = new Android.Views.Animations.DecelerateInterpolator ();
     foreach (var holder in pendingAnimations) {
         var view = holder.ItemView;
         view.Visibility = Android.Views.ViewStates.Visible;
         ViewCompat.SetTranslationY (view, view.Height - view.PaddingTop);
         ViewCompat.Animate (view)
             .TranslationY (0)
             .SetStartDelay (holder.LayoutPosition * 50 + 10)
             .SetDuration (300)
             .SetInterpolator (interpolator)
             .WithStartAction (new Run (() => { ongoingAnimations++; DispatchAddStarting (holder); }))
             .WithEndAction (new Run (() => { ongoingAnimations--; DispatchAddFinished (holder); DispatchEndAnimations (); }))
             .Start ();
     }
     pendingAnimations.Clear ();
 }
Esempio n. 4
0
		public void SetupInitialAnimations (Action callback = null)
		{
			int delay = 10;
			var time = Resources.GetInteger (Android.Resource.Integer.ConfigMediumAnimTime);
			var delayIncr = (3 * time) / 4;
			var interpolator = new Android.Views.Animations.DecelerateInterpolator ();
			ViewPropertyAnimator circleAnim = null;

			foreach (var id in circleIds) {
				var circle = circlesLayout.FindViewById (id);

				circle.ScaleX = .3f;
				circle.ScaleY = .3f;
				circle.Alpha = 0;

				circleAnim = circle.Animate ()
					.ScaleX (1)
					.ScaleY (1)
					.Alpha (1)
					.SetStartDelay (delay)
					.SetDuration (time)
					.SetInterpolator (interpolator);

				var last = id == circleIds.Last ();
				if (last && callback != null)
					circleAnim.WithEndAction (new Run (callback));

				circleAnim.Start ();
				delay += delayIncr;
			}
		}
Esempio n. 5
0
		public void ShowNotification (string notification, string duration = null, string distance = null, int delay = 0)
		{
			notificationPanel.TranslationY =
				notificationPanel.Height + ((LinearLayout.LayoutParams)notificationPanel.LayoutParameters).BottomMargin;
			notificationPanel.TranslationX = 0;
			notificationPanel.ScaleX = .9f;
			notificationPanel.Visibility = ViewStates.Visible;
			lastTrip.Text = notification;
			if (duration == null || distance == null) {
				rideInfoPanel.Visibility = ViewStates.Invisible;
				lastTrip.TranslationY = TypedValue.ApplyDimension (ComplexUnitType.Dip, 8, Resources.DisplayMetrics);
			} else {
				rideInfoPanel.Visibility = ViewStates.Visible;
				rideInfoPanel.FindViewById<TextView> (Resource.Id.timeText).Text = duration;
				rideInfoPanel.FindViewById<TextView> (Resource.Id.distanceText).Text = distance;
				lastTrip.TranslationY = 0;
			}
			var time = Resources.GetInteger (Android.Resource.Integer.ConfigLongAnimTime);
			var decel = new Android.Views.Animations.DecelerateInterpolator ();

			notificationPanel.Animate ().TranslationY (0).ScaleX (1).SetDuration (time).SetStartDelay (delay).SetInterpolator (decel).WithEndAction (new Run (() => {
				var accel = new Android.Views.Animations.AccelerateInterpolator ();
				notificationPanel.Animate ()
					.TranslationX (-Resources.DisplayMetrics.WidthPixels)
					.SetDuration (time)
					.SetStartDelay (6000)
					.SetInterpolator (accel)
					.WithEndAction (new Run (() => notificationPanel.Visibility = ViewStates.Invisible))
					.Start ();
			})).Start ();
		}
Esempio n. 6
0
		public void OnGlobalLayout ()
		{
			circlesLayout.ViewTreeObserver.RemoveGlobalOnLayoutListener (this);
			int delay = 10;
			var time = Resources.GetInteger (Android.Resource.Integer.ConfigMediumAnimTime);
			var delayIncr = (3 * time) / 4;
			var interpolator = new Android.Views.Animations.DecelerateInterpolator ();
			ViewPropertyAnimator circleAnim = null;

			foreach (var id in circleIds) {
				var circle = circlesLayout.FindViewById (id);

				circle.ScaleX = .3f;
				circle.ScaleY = .3f;
				circle.Alpha = 0;

				circleAnim = circle.Animate ()
					.ScaleX (1)
					.ScaleY (1)
					.Alpha (1)
					.SetStartDelay (delay)
					.SetDuration (time)
					.SetInterpolator (interpolator);

				var last = id == circleIds.Last ();
				if (last) {
					if (prefs.FirstTimeAround && !delayOnBoarding)
						circleAnim.WithEndAction (new Run (ShowOnboarding));
					else if (!prefs.FirstTimeAround)
						circleAnim.WithEndAction (new Run (LoadData));
				}

				circleAnim.Start ();
				delay += delayIncr;
			}

			firstCreate = false;
		}