protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); //HasOptionsMenu = true; Xamarin.Essentials.Platform.Init(this, savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.activity_main); Button botonAnimado = FindViewById <Button>(Resource.Id.botonanimado); botonAnimado.SetWidth(300); ObjectAnimator objectAnimator = ObjectAnimator.OfInt(botonAnimado, "width", 400, 250, 400); objectAnimator.SetDuration(3000); objectAnimator.SetInterpolator(new LinearInterpolator()); objectAnimator.RepeatCount = 100; //objectAnimator.Start(); ObjectAnimator objectAnimator1 = ObjectAnimator.OfInt(botonAnimado, "height", 220, 70, 220); objectAnimator1.SetDuration(3000); objectAnimator1.SetInterpolator(new LinearInterpolator()); objectAnimator1.RepeatCount = 100; ObjectAnimator objectAnimator2 = ObjectAnimator.OfFloat(botonAnimado, "rotationY", 0, 360); objectAnimator2.SetDuration(10000); objectAnimator2.SetInterpolator(new LinearInterpolator()); objectAnimator2.RepeatCount = 100; objectAnimator2.Update += (sender, e) => { if ((float)e.Animation.AnimatedValue >= 90 && (float)e.Animation.AnimatedValue <= 270) { botonAnimado.Text = ""; } else { botonAnimado.Text = "Boton animado"; } }; AnimatorSet ans = new Android.Animation.AnimatorSet(); ans.PlayTogether(objectAnimator, objectAnimator1, objectAnimator2);//,); ans.Start(); //Animator animator = AnimatorInflater.LoadAnimator(this, Resource.Animator.property); //animator.SetTarget(botonAnimado); //animator.Start(); }
public static Animator OfPoints(Java.Lang.Object objects, String xMethod, String yMethod, Point[] values) { var set = new AnimatorSet(); var xValues = new int[values.Length]; var yValues = new int[values.Length]; for (int i = 0; i < values.Length; i++) { xValues[i] = values[i].X; yValues[i] = values[i].Y; } ObjectAnimator xAnimator = ObjectAnimator.OfInt(objects, xMethod, xValues); ObjectAnimator yAnimator = ObjectAnimator.OfInt(objects, yMethod, yValues); set.PlayTogether(xAnimator, yAnimator); return set; }
void Initialize () { ScaleX = ScaleY = 1; var baseDuration = 1000; animation = new AnimatorSet (); var rotation = ObjectAnimator.OfFloat (this, "rotation", 0, 60); rotation.SetDuration (baseDuration); rotation.RepeatCount = ValueAnimator.Infinite; var scale = ObjectAnimator.OfPropertyValuesHolder ( this, PropertyValuesHolder.OfFloat ("scaleX", 1, .9f), PropertyValuesHolder.OfFloat ("scaleY", 1, .9f) ); scale.RepeatMode = ValueAnimatorRepeatMode.Reverse; scale.SetDuration (baseDuration / 2); scale.RepeatCount = ValueAnimator.Infinite; animation.PlayTogether (rotation, scale); animation.Start (); }
protected override void OnFinishInflate() { base.OnFinishInflate(); label = FindViewById<TextView>(Resource.Id.Label); circle = FindViewById<CircledImageView>(Resource.Id.Circle); expandCircleRadius = circle.CircleRadius; shrinkCircleRadius = expandCircleRadius * ShrinkCricleRatio; shrinkCircleAnimator = ObjectAnimator.OfFloat(circle, "circleRadius", expandCircleRadius, shrinkCircleRadius); shrinkLabelAnimator = ObjectAnimator.OfFloat(label, "alpha", ExpandLabelAlpha, ShrinkLabelAlpha); // FIXME Xamarin: new AnimatorSet().SetDuration(long) should return an AnimatorSet shrinkAnimator = new AnimatorSet(); shrinkAnimator.SetDuration(AnimationDurationMs); shrinkAnimator.PlayTogether(shrinkCircleAnimator, shrinkLabelAnimator); expandCircleAnimator = ObjectAnimator.OfFloat(circle, "circleRadius", shrinkCircleRadius, expandCircleRadius); expandLabelAnimator = ObjectAnimator.OfFloat(label, "alpha", ShrinkLabelAlpha, ExpandLabelAlpha); expandAnimator = new AnimatorSet(); expandAnimator.SetDuration(AnimationDurationMs); expandAnimator.PlayTogether(expandCircleAnimator, expandLabelAnimator); }
/** * Performs the undo animation and restores the original state for given {@link android.view.View}. * * @param view the parent {@code View} which contains both primary and undo {@code View}s. */ public void undo( View view) { int position = AdapterViewUtil.getPositionForView(getListViewWrapper(), view); mUndoPositions.Remove(position); View primaryView = mCallback.getPrimaryView(view); View undoView = mCallback.getUndoView(view); primaryView.Visibility=ViewStates.Visible; ObjectAnimator undoAlphaAnimator = ObjectAnimator.OfFloat(undoView, ALPHA, 1f, 0f); ObjectAnimator primaryAlphaAnimator = ObjectAnimator.OfFloat(primaryView, ALPHA, 0f, 1f); ObjectAnimator primaryXAnimator = ObjectAnimator.OfFloat(primaryView, TRANSLATION_X, primaryView.Width, 0f); AnimatorSet animatorSet = new AnimatorSet(); animatorSet.PlayTogether(undoAlphaAnimator, primaryAlphaAnimator, primaryXAnimator); animatorSet.AddListener(new UndoAnimatorListener(undoView,this)); animatorSet.Start(); mCallback.onUndo(view, position); }
/** * Animates given View. * * @param view the View that should be animated. */ private void animateView(int position, View view, Animator[] animators) { if (mAnimationStartMillis == -1) { mAnimationStartMillis = SystemClock.UptimeMillis(); } // ViewHelper.setAlpha(view, 0); view.Alpha = 0; AnimatorSet set = new AnimatorSet(); set.PlayTogether(animators); set.StartDelay = calculateAnimationDelay(position); set.SetDuration(mAnimationDurationMillis); set.Start(); mAnimators.Put(view.GetHashCode(), set); }
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(); }
private void PlayAnimatorsTogether(Animator[] animations) { var animatorSet = new AnimatorSet(); animatorSet.PlayTogether(animations); animatorSet.Start(); }
/** * Flings given {@link android.view.View} out of sight. * * @param view the parent {@link android.view.View}. * @param position the position of the item in the {@link android.widget.ListAdapter} corresponding to the {@code View}. * @param flingToRight {@code true} if the {@code View} should be flinged to the right, {@code false} if it should be flinged to the left. */ private void flingView(View view, int position, bool flingToRight) { if (mViewWidth < 2) { mViewWidth = mListViewWrapper.getListView().Width; } View swipeView = getSwipeView(view); ObjectAnimator xAnimator = ObjectAnimator.OfFloat(swipeView, TRANSLATION_X, flingToRight ? mViewWidth : -mViewWidth); ObjectAnimator alphaAnimator = ObjectAnimator.OfFloat(swipeView, ALPHA, 0); AnimatorSet animatorSet = new AnimatorSet(); animatorSet.PlayTogether(xAnimator, alphaAnimator); animatorSet.SetDuration(mAnimationTime); animatorSet.AddListener(new FlingAnimatorListener(view, position,this)); animatorSet.Start(); }
public void SpotAnimateAllPositionsOfANote(Note note) { List<ObjectAnimator> animationsList = new List<ObjectAnimator>(); foreach (Position position in note.Positions) { //Create a new visual representation of that note. NoteRepresentation noteRep = new NoteRepresentation(_activity, note); //Set name on note. noteRep.SetText(note.Name); //Create the note's animation, and add that animation to the animations array. animationsList.Add(noteRep.CreateNoteAnimation_FadeOnly(position)); } AnimatorSet animatorSet = new AnimatorSet(); animatorSet.PlayTogether(animationsList.ToArray()); animatorSet.Start(); }
public ColorItem(Context context) : base(context) { View.Inflate (context, Resource.Layout.ColorPickerItem, this); label = FindViewById<TextView> (Resource.Id.Label); colorView = FindViewById<CircledImageView> (Resource.Id.Color); expandCircleRadius = colorView.CircleRadius; shrinkCircleRadius = expandCircleRadius * ShrinkCricleRatio; shrinkCircleAnimator = ObjectAnimator.OfFloat (colorView, "circleRadius", expandCircleRadius, shrinkCircleRadius); shrinkLabelAnimator = ObjectAnimator.OfFloat (label, "alpha", ExpandLabelAlpha, ShrinkLabelAlpha); // FIXME Xamarin: new AnimatorSet().SetDuration(long) should return an AnimatorSet shrinkAnimator = new AnimatorSet (); shrinkAnimator.SetDuration (AnimationDurationMs); shrinkAnimator.PlayTogether (shrinkCircleAnimator, shrinkLabelAnimator); expandCircleAnimator = ObjectAnimator.OfFloat (colorView, "circleRadius", shrinkCircleRadius, expandCircleRadius); expandLabelAnimator = ObjectAnimator.OfFloat (label, "alpha", ShrinkLabelAlpha, ExpandLabelAlpha); expandAnimator = new AnimatorSet (); expandAnimator.SetDuration (AnimationDurationMs); expandAnimator.PlayTogether (expandCircleAnimator, expandLabelAnimator); }
private void Switch (Drawable src, ColorStateList tint, bool withAnimation = false) { if (!withAnimation) { SetImageDrawable (src); BackgroundTintList = tint; return; } const int ScaleDuration = 200; const int InitialDelay = 100; if (switchAnimation != null) { switchAnimation.Cancel (); switchAnimation = null; } var currentSrc = Drawable; // Scaling down animation var circleAnimOutX = ObjectAnimator.OfFloat (this, "scaleX", 1, 0.1f); var circleAnimOutY = ObjectAnimator.OfFloat (this, "scaleY", 1, 0.1f); circleAnimOutX.SetDuration (ScaleDuration); circleAnimOutY.SetDuration (ScaleDuration); // Alpha out of the icon //var iconAnimOut = ObjectAnimator.OfInt (currentSrc, "alpha", 255, 0); //iconAnimOut.SetDuration (AlphaDuration); var outSet = new AnimatorSet (); outSet.PlayTogether (circleAnimOutX, circleAnimOutY); outSet.SetInterpolator (AnimationUtils.LoadInterpolator (Context, Android.Resource.Animation.AccelerateInterpolator)); outSet.StartDelay = InitialDelay; outSet.AnimationEnd += (sender, e) => { BackgroundTintList = tint; SetImageDrawable (src); JumpDrawablesToCurrentState (); ((Animator)sender).RemoveAllListeners (); }; // Scaling up animation var circleAnimInX = ObjectAnimator.OfFloat (this, "scaleX", 0.1f, 1); var circleAnimInY = ObjectAnimator.OfFloat (this, "scaleY", 0.1f, 1); circleAnimInX.SetDuration (ScaleDuration); circleAnimInY.SetDuration (ScaleDuration); var inSet = new AnimatorSet (); inSet.PlayTogether (circleAnimInX, circleAnimInY); inSet.SetInterpolator (AnimationUtils.LoadInterpolator (Context, Android.Resource.Animation.DecelerateInterpolator)); switchAnimation = new AnimatorSet (); switchAnimation.PlaySequentially (outSet, inSet); switchAnimation.Start (); }
private AnimatorSet GetAnimatorSet(int idx, bool expand) { AnimatorSet set = null; var avgRadians = this.ToRadians(360 / (this.ChildCount - 1)); var w = Math.Min(this.MeasuredWidth, this.MeasuredHeight) / 2; var cx = this.MeasuredWidth / 2; var cy = this.MeasuredHeight / 2; var c = this.GetChildAt(idx); var radians = idx * avgRadians; var hw = c.MeasuredWidth / 2; var hy = c.MeasuredHeight / 2; var tmp = (w - hw); var l = w + (int)Math.Round(tmp * Math.Cos(radians) - hw); var t = w + (int)Math.Round(tmp * Math.Sin(radians) - hw); var duration = new Random(1000).Next(200, 1000); set = new AnimatorSet(); set.SetInterpolator(new Android.Views.Animations.BounceInterpolator()); set.SetTarget(c); set.SetDuration(200 * idx + duration); //set.SetDuration(200); float[] xs = new float[] { cx - hw, l }; float[] ys = new float[] { cy - hy, t }; float[] ss = new float[] { 0.1f, 1 }; if (!expand) { Array.Reverse(xs); Array.Reverse(ys); Array.Reverse(ss); } var aniX = ObjectAnimator.OfFloat(c, "X", xs); var aniY = ObjectAnimator.OfFloat(c, "Y", ys); var aniSX = ObjectAnimator.OfFloat(c, "ScaleX", ss); var aniSY = ObjectAnimator.OfFloat(c, "ScaleY", ss); aniX.SetAutoCancel(true); aniY.SetAutoCancel(true); aniSX.SetAutoCancel(true); aniSY.SetAutoCancel(true); set.PlayTogether(aniX, aniY, aniSX, aniSY); set.AnimationEnd += Set_AnimationEnd; return set; }
private Animator.IAnimatorListener animationListener;//=new AnimationListenerClass(this); //private Animator.AnimatorListener animationListener = new Animator.AnimatorListener() { // @Override // public void onAnimationStart(Animator animation) { // if (isOpened()){ // showScrollViewMenu(scrollViewMenu); // if (menuListener != null) // menuListener.openMenu(); // } // } // @Override // public void onAnimationEnd(Animator animation) { // // reset the view; // if(isOpened()){ // viewActivity.setTouchDisable(true); // viewActivity.setOnClickListener(viewActivityOnClickListener); // }else{ // viewActivity.setTouchDisable(false); // viewActivity.setOnClickListener(null); // hideScrollViewMenu(scrollViewLeftMenu); // hideScrollViewMenu(scrollViewRightMenu); // if (menuListener != null) // menuListener.closeMenu(); // } // } // @Override // public void onAnimationCancel(Animator animation) { // } // @Override // public void onAnimationRepeat(Animator animation) { // } //}; /** * A helper method to build scale down animation; * * @param target * @param targetScaleX * @param targetScaleY * @return */ private AnimatorSet buildScaleDownAnimation(View target, float targetScaleX, float targetScaleY) { AnimatorSet scaleDown = new AnimatorSet(); scaleDown.PlayTogether( ObjectAnimator.OfFloat(target, "scaleX", targetScaleX), ObjectAnimator.OfFloat(target, "scaleY", targetScaleY) ); if (mUse3D) { int angle = scaleDirection == DIRECTION_LEFT ? -ROTATE_Y_ANGLE : ROTATE_Y_ANGLE; scaleDown.PlayTogether(ObjectAnimator.OfFloat(target, "rotationY", angle)); } scaleDown.SetInterpolator(AnimationUtils.LoadInterpolator(activity, Android.Resource.Animation.DecelerateInterpolator)); scaleDown.SetDuration(250); return scaleDown; }
public void UpThrow() { ObjectAnimator objectAnimator = ObjectAnimator.OfFloat(shapeLoadingView, "translationY", mDistance, 0); ObjectAnimator scaleIndication = ObjectAnimator.OfFloat(indicationIm, "scaleX", 0.2f, 1); ObjectAnimator objectAnimator1 = null; switch(shapeLoadingView.GetShape()) { case ShapeLoadingView.Shape.RECT: { objectAnimator1 = ObjectAnimator.OfFloat(shapeLoadingView, "rotation", 0, -120); } break; case ShapeLoadingView.Shape.CIRCLE: { objectAnimator1 = ObjectAnimator.OfFloat(shapeLoadingView, "rotation", 0, 180); } break; case ShapeLoadingView.Shape.TRIANGLE: { objectAnimator1 = ObjectAnimator.OfFloat(shapeLoadingView, "rotation", 0, 180); } break; } objectAnimator.SetDuration(ANIMATION_DURATION); objectAnimator1.SetDuration(ANIMATION_DURATION); objectAnimator.SetInterpolator(new DecelerateInterpolator()); objectAnimator1.SetInterpolator(new DecelerateInterpolator()); AnimatorSet animatorSet = new AnimatorSet(); animatorSet.SetDuration(ANIMATION_DURATION); animatorSet.PlayTogether(objectAnimator, objectAnimator1, scaleIndication); animatorSet.AnimationEnd += (e, s) => { FreeFall(); }; animatorSet.Start(); }
public void FreeFall() { ObjectAnimator objectAnimator = ObjectAnimator.OfFloat(shapeLoadingView, "translationY", 0, mDistance); ObjectAnimator scaleIndication = ObjectAnimator.OfFloat(indicationIm, "scaleX", 1, 0.2f); objectAnimator.SetDuration(ANIMATION_DURATION); objectAnimator.SetInterpolator(new AccelerateInterpolator()); AnimatorSet animatorSet = new AnimatorSet(); animatorSet.SetDuration(ANIMATION_DURATION); animatorSet.PlayTogether(objectAnimator, scaleIndication); animatorSet.AnimationEnd += (e, s) => { shapeLoadingView.ChangeShape(); UpThrow(); }; animatorSet.Start(); }
/** * Animates the pending {@link android.view.View} back to its original position. */ private void restoreCurrentViewTranslation() { if (mCurrentView == null) { return; } ObjectAnimator xAnimator = ObjectAnimator.OfFloat(mSwipingView, TRANSLATION_X, 0); ObjectAnimator alphaAnimator = ObjectAnimator.OfFloat(mSwipingView, ALPHA, 1); AnimatorSet animatorSet = new AnimatorSet(); animatorSet.PlayTogether(xAnimator, alphaAnimator); animatorSet.SetDuration(mAnimationTime); animatorSet.AddListener(new RestoreAnimatorListener(mCurrentView, mCurrentPosition,this)); animatorSet.Start(); }
public void AnimateXAndWidth (Frame newFrame, Action completed) { ObjectAnimator xAnim = ObjectAnimator.OfFloat (this, LEFT_MARGIN, (float)Frame.X, (float)newFrame.X); ObjectAnimator wAnim = ObjectAnimator.OfInt (this, NEW_WIDTH, Frame.W, newFrame.W); AnimatorSet set = new AnimatorSet (); set.SetDuration (FRAMEANIMATIONTIME); set.PlayTogether (new ObjectAnimator[] { xAnim, wAnim }); set.Start (); set.AnimationEnd += delegate { completed (); }; }
private AnimatorSet buildMenuAnimation(View target, float alpha) { AnimatorSet alphaAnimation = new AnimatorSet(); alphaAnimation.PlayTogether( ObjectAnimator.OfFloat(target, "alpha", alpha) ); alphaAnimation.SetDuration(250); return alphaAnimation; }
public void shift(View view) { if (!mShifted) { foreach (ImageView imageView in mImageViews) { ObjectAnimator tx = ObjectAnimator.OfFloat(imageView, View.X, (mRandom.NextFloat() - 0.5f) * 500); tx.AddUpdateListener(new AnimListener(mBlurringView)); ObjectAnimator ty = ObjectAnimator.OfFloat(imageView, View.Y, (mRandom.NextFloat() - 0.5f) * 500); ty.AddUpdateListener(new AnimListener(mBlurringView)); AnimatorSet set = new AnimatorSet(); set.PlayTogether(tx, ty); set.SetDuration(3000); set.SetInterpolator(new OvershootInterpolator()); set.AddListener(new AnimationEndListener(imageView)); set.Start(); }; mShifted = true; } else { foreach (ImageView imageView in mImageViews) { ObjectAnimator tx = ObjectAnimator.OfFloat(imageView, View.X, 0); tx.AddUpdateListener(new AnimListener(mBlurringView)); ObjectAnimator ty = ObjectAnimator.OfFloat(imageView, View.Y, 0); ty.AddUpdateListener(new AnimListener(mBlurringView)); AnimatorSet set = new AnimatorSet(); set.PlayTogether(tx, ty); set.SetDuration(3000); set.SetInterpolator(new OvershootInterpolator()); set.AddListener(new AnimationEndListener(imageView)); set.Start(); }; mShifted = false; } }
protected override void OnCreate(Bundle bundle) { base.OnCreate (bundle); // Set our view from the "main" layout resource SetContentView (Resource.Layout.Main); mBlurringView = FindViewById<BlurringView> (Resource.Id.blurring_view); View blurredView = FindViewById(Resource.Id.blurred_view); mBlurringView.SetBlurredView (blurredView); mImageViews [0] = FindViewById<ImageView> (Resource.Id.image0); mImageViews [1] = FindViewById<ImageView> (Resource.Id.image1); mImageViews [2] = FindViewById<ImageView> (Resource.Id.image2); mImageViews [3] = FindViewById<ImageView> (Resource.Id.image3); mImageViews [4] = FindViewById<ImageView> (Resource.Id.image4); mImageViews [5] = FindViewById<ImageView> (Resource.Id.image5); mImageViews [6] = FindViewById<ImageView> (Resource.Id.image6); mImageViews [7] = FindViewById<ImageView> (Resource.Id.image7); mImageViews [8] = FindViewById<ImageView> (Resource.Id.image8); // Get our button from the layout resource, // and attach an event to it Button shuffleButton = FindViewById<Button> (Resource.Id.shuffle_button); Button shiftButton = FindViewById<Button> (Resource.Id.shift_button); shiftButton.Click += (sender, e) => { if (!mShifted) { foreach (ImageView imageView in mImageViews) { ObjectAnimator tx = ObjectAnimator.OfFloat (imageView, "translationX", (float)((mRandom.NextDouble () - 0.5f) * 500)); tx.Update += (s, ea) => mBlurringView.Invalidate(); ObjectAnimator ty = ObjectAnimator.OfFloat (imageView, "translationY", (float)((mRandom.NextDouble () - 0.5f) * 500)); tx.Update += (s, ea) => mBlurringView.Invalidate(); AnimatorSet set = new AnimatorSet(); set.PlayTogether(tx, ty); set.SetDuration(3000); set.SetInterpolator(new OvershootInterpolator()); set.AnimationStart += (s, ea) => imageView.SetLayerType(LayerType.Hardware, null); set.AnimationEnd += (s, ea) => imageView.SetLayerType(LayerType.None, null); set.AnimationCancel += (s, ea) => imageView.SetLayerType (LayerType.None, null); set.Start(); } mShifted = true; } else { foreach (ImageView imageView in mImageViews) { ObjectAnimator tx = ObjectAnimator.OfFloat (imageView, "translationX", 0); tx.Update += (s, ea) => mBlurringView.Invalidate(); ObjectAnimator ty = ObjectAnimator.OfFloat (imageView, "translationY", 0); tx.Update += (s, ea) => mBlurringView.Invalidate(); AnimatorSet set = new AnimatorSet(); set.PlayTogether(tx, ty); set.SetDuration(3000); set.SetInterpolator(new OvershootInterpolator()); // set.AddListener(new AnimationEndListener(imageView)); set.AnimationStart += (s, ea) => imageView.SetLayerType(LayerType.Hardware, null); set.AnimationEnd += (s, ea) => imageView.SetLayerType(LayerType.None, null); set.AnimationCancel += (s, ea) => imageView.SetLayerType (LayerType.None, null); set.Start(); } mShifted = false; } }; shuffleButton.Click += (sender, e) => { int newStartIndex; do { newStartIndex = mImageIds[mRandom.Next(mImageIds.Length)]; } while (newStartIndex == mStartIndex); mStartIndex = newStartIndex; for (int i = 0; i < mImageViews.Length; i++) { int drawableId = mImageIds[(mStartIndex +i) % mImageIds.Length]; mImageViews[i].SetImageDrawable(ApplicationContext.Resources.GetDrawable(drawableId)); } mBlurringView.Invalidate(); }; }
/** * A helper method to build scale up animation; * * @param target * @param targetScaleX * @param targetScaleY * @return */ private AnimatorSet buildScaleUpAnimation(View target, float targetScaleX, float targetScaleY) { AnimatorSet scaleUp = new AnimatorSet(); scaleUp.PlayTogether( ObjectAnimator.OfFloat(target, "scaleX", targetScaleX), ObjectAnimator.OfFloat(target, "scaleY", targetScaleY) ); if (mUse3D) { scaleUp.PlayTogether(ObjectAnimator.OfFloat(target, "rotationY", 0)); } scaleUp.SetDuration(250); return scaleUp; }
public override void OnViewCreated(View view, Bundle savedInstanceState) { base.OnViewCreated (view, savedInstanceState); var interpolator = new Android.Views.Animations.AccelerateDecelerateInterpolator (); var xDelta = 12.ToPixels (); var yDelta = 8.ToPixels (); var transX = ObjectAnimator.OfFloat (logoImage, "translationX", -xDelta, xDelta); var transY = ObjectAnimator.OfFloat (logoImage, "translationY", -yDelta, 0, -yDelta); var rot = ObjectAnimator.OfFloat (logoImage, "rotation", -1.2f, 1.2f); // Ad infinitam transX.RepeatCount = transY.RepeatCount = rot.RepeatCount = -1; transX.RepeatMode = transY.RepeatMode = rot.RepeatMode = ValueAnimatorRepeatMode.Reverse; logoAnimation = new AnimatorSet (); logoAnimation.PlayTogether (transX, transY, rot); logoAnimation.SetDuration (800); logoAnimation.SetInterpolator (interpolator); logoAnimation.Start (); }