private async void OnRequestOnboardingPage(OnboardingViewModel oVm) { _viewModel = oVm; AnimationInitUI(); BindEvents(); var mainAnimatorSet = new AnimatorSet(); var appNameLayoutFinalTopSpace = TypedValue.ApplyDimension(ComplexUnitType.Dip, 55.0f, Application.Context.Resources.DisplayMetrics); var decelerateInterpolator = new DecelerateInterpolator(1.0f); var appNameLayoutAnimator = new ValueAnimator(); appNameLayoutAnimator.SetDuration(750); appNameLayoutAnimator.SetInterpolator(decelerateInterpolator); appNameLayoutAnimator.SetFloatValues(_appNameLayout.GetY(), appNameLayoutFinalTopSpace); appNameLayoutAnimator.Update += (o, args) => { _appNameLayout.SetY((float)args.Animation.AnimatedValue); }; var whatAccountsAnimator = new ValueAnimator(); whatAccountsAnimator.SetDuration(750); whatAccountsAnimator.SetInterpolator(decelerateInterpolator); whatAccountsAnimator.SetFloatValues(0.0f, 1.0f); whatAccountsAnimator.Update += (o, args) => { _whatAccounts.Alpha = (float)args.Animation.AnimatedValue; }; var appNameAnimationSet = new AnimatorSet(); appNameAnimationSet.PlayTogether(appNameLayoutAnimator, whatAccountsAnimator); var socialButtonsAnimatorSet = new AnimatorSet(); var overshootInterpolator = new OvershootInterpolator(3f); var facebookButtonAnimator = new ValueAnimator(); facebookButtonAnimator.SetDuration(500); facebookButtonAnimator.SetInterpolator(overshootInterpolator); facebookButtonAnimator.SetFloatValues(_facebookButton.GetY() + _facebookButton.Height, _facebookButton.GetY()); facebookButtonAnimator.Update += (o, args) => { _facebookButton.SetY((float)args.Animation.AnimatedValue); _facebookButton.Alpha = args.Animation.AnimatedFraction; }; var twitterButtonAnimator = new ValueAnimator(); twitterButtonAnimator.SetDuration(500); twitterButtonAnimator.SetInterpolator(overshootInterpolator); twitterButtonAnimator.SetFloatValues(_facebookButton.GetY() + _facebookButton.Height, _facebookButton.GetY()); twitterButtonAnimator.Update += (o, args) => { _twitterButton.SetY((float)args.Animation.AnimatedValue); _twitterButton.Alpha = args.Animation.AnimatedFraction; }; socialButtonsAnimatorSet.PlaySequentially(facebookButtonAnimator, twitterButtonAnimator); socialButtonsAnimatorSet.StartDelay = 500; var letsGoButtonAnimator = new ValueAnimator(); letsGoButtonAnimator.SetDuration(500); letsGoButtonAnimator.SetInterpolator(decelerateInterpolator); letsGoButtonAnimator.SetFloatValues(0.0f, 1.0f); letsGoButtonAnimator.Update += (sender, args) => { _goButton.Alpha = (float)args.Animation.AnimatedValue; }; mainAnimatorSet.PlaySequentially(appNameAnimationSet, socialButtonsAnimatorSet, letsGoButtonAnimator); await _viewModel.DidLoad(); await Task.Delay(2000); mainAnimatorSet.Start(); await _viewModel.DidAppear(); }
public void SetOpened(bool opened, bool animated = true) { this.opened = opened; if (!animated) SetNewOffset (opened ? MaxOffset : 0); else { if (animator != null) { animator.Cancel (); animator = null; } animator = ValueAnimator.OfInt (contentOffsetX, opened ? MaxOffset : 0); animator.SetInterpolator (interpolator); animator.SetDuration (Context.Resources.GetInteger (Android.Resource.Integer.ConfigMediumAnimTime)); animator.Update += (sender, e) => SetNewOffset ((int)e.Animation.AnimatedValue); animator.AnimationEnd += (sender, e) => { animator.RemoveAllListeners (); animator = null; }; animator.Start (); } }
void Initialize() { var display = Resources.DisplayMetrics; // Numbers and dots mainPaint = new Paint { AntiAlias = true, Color = Color.White, TextSize = TypedValue.ApplyDimension(ComplexUnitType.Sp, 12, display), }; linePaint = new Paint { AntiAlias = true, Color = Color.Argb(0xaa, 0xff, 0xff, 0xff), }; linePaint.SetStyle(Paint.Style.Stroke); ripple = Context.Resources.GetDrawable(Resource.Drawable.ripple_background); radius = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, BaseRadius, display); textMargin = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 10, display); heightVariants = new [] { 0, (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 16, display), -(int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 14, display), (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 9, display), }; shiverOffsets = new [] { (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 9, display), (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 3, display), -(int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 8, display), (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 4, display), -(int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 7, display), (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 6, display), }; shiverAnimator = ObjectAnimator.OfFloat(this, "scaleX", 0, 1); shiverAnimator.SetInterpolator(new TriangleWave()); shiverAnimator.SetDuration(8000); shiverAnimator.RepeatCount = ValueAnimator.Infinite; shiverAnimator.AnimationRepeat += (sender, e) => shiverIndex++; }