public void SetCountAnimated (int count)
		{
			if (alphaAnimator != null) {
				alphaAnimator.Cancel ();
				alphaAnimator = null;
			}
			const int Duration = 300;

			alphaAnimator = ObjectAnimator.OfInt (this, "alpha", 0xFF, 0);
			alphaAnimator.SetDuration (Duration);
			alphaAnimator.RepeatMode = ValueAnimatorRepeatMode.Reverse;
			alphaAnimator.RepeatCount = 1;
			alphaAnimator.AnimationRepeat += (sender, e) => {
				((Animator)sender).RemoveAllListeners ();
				this.count = count;
			};
			alphaAnimator.Start ();
		}
			protected override void OnAnimatorAttached()
			{
				base.OnAnimatorAttached();

				mHeaderText = Header.FindViewById(Resource.Id.header_text_layout);
				var tv = new TypedValue();
				int actionBarHeight = 0;
				if (mContext.Theme.ResolveAttribute(Android.Resource.Attribute.ActionBarSize, tv, true))
				{
					actionBarHeight = TypedValue.ComplexToDimensionPixelSize(tv.Data, mContext.Resources.DisplayMetrics);
				}
				mMinHeightTextHeader = mContext.Resources.GetDimensionPixelSize(Resource.Dimension.min_height_textheader_materiallike);

				mHeightStartAnimation = actionBarHeight + mMinHeightTextHeader;

				valueAnimator = ValueAnimator.OfInt(0);
				valueAnimator.SetDuration(mContext.Resources.GetInteger(Android.Resource.Integer.ConfigShortAnimTime));
				valueAnimator.Update += (sender, e) =>
				{
					ViewGroup.LayoutParams layoutParams = mHeaderText.LayoutParameters;
					layoutParams.Height = (int)e.Animation.AnimatedValue;
					mHeaderText.LayoutParameters = layoutParams;
				};
			}
Beispiel #3
0
        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 ();
            }
        }
		public async void OnGlobalLayout ()
		{
			productImage.ViewTreeObserver.RemoveGlobalOnLayoutListener (this);

			const int DeltaX = 100;

			var img1 = Images.FromUrl (Product.ImageForSize (images [0], Images.ScreenWidth));
			var img2 = Images.FromUrl (Product.ImageForSize (images [1], Images.ScreenWidth));

			productDrawable = new KenBurnsDrawable (Color.DarkBlue);
			productDrawable.FirstBitmap = await img1;
			productDrawable.SecondBitmap = await img2;
			productImage.SetImageDrawable (productDrawable);
			currentIndex++;

			var evaluator = new MatrixEvaluator ();
			var finalMatrix = new Matrix ();
			finalMatrix.SetTranslate (-DeltaX, -(float)productDrawable.FirstBitmap.Height / 1.3f + (float)productImage.Height);
			finalMatrix.PostScale (1.27f, 1.27f);
			kenBurnsMovement = ValueAnimator.OfObject (evaluator, new Matrix (), finalMatrix);
			kenBurnsMovement.Update += (sender, e) => productDrawable.SetMatrix ((Matrix)e.Animation.AnimatedValue);
			kenBurnsMovement.SetDuration (14000);
			kenBurnsMovement.RepeatMode = ValueAnimatorRepeatMode.Reverse;
			kenBurnsMovement.RepeatCount = ValueAnimator.Infinite;
			kenBurnsMovement.Start ();

			kenBurnsAlpha = ObjectAnimator.OfInt (productDrawable, "alpha", 0, 0, 0, 255, 255, 255);
			kenBurnsAlpha.SetDuration (kenBurnsMovement.Duration);
			kenBurnsAlpha.RepeatMode = ValueAnimatorRepeatMode.Reverse;
			kenBurnsAlpha.RepeatCount = ValueAnimator.Infinite;
			kenBurnsAlpha.AnimationRepeat += (sender, e) => NextImage ();
			kenBurnsAlpha.Start ();
		}
Beispiel #5
0
        public void SetOrientation(ArrowOrientation orientation, bool animate = true)
        {
            Orientation = orientation;

            animator = ValueAnimator.OfFloat (0f, 1f);
            animator.SetDuration (250);
            animator.Update += (sender, e) => Alpha = (float)e.Animation.AnimatedValue;
            animator.AnimationEnd += (sender, e) => { animator.RemoveAllListeners (); animator = null; };
            animator.Start ();
        }
        private static IntPtr n_SetDuration_J(IntPtr jnienv, IntPtr native__this, long duration)
        {
            ValueAnimator @object = Java.Lang.Object.GetObject <ValueAnimator> (native__this, JniHandleOwnership.DoNotTransfer) !;

            return(JNIEnv.ToJniHandle(@object.SetDuration(duration)));
        }
Beispiel #7
0
        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();
        }
        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++;
        }