コード例 #1
0
        private float[] getAnimationOffsetsForSide(AnimationSide side)
        {
            switch (side)
            {
            case AnimationSide.Right:
                return(new[] { 50, 0, 3.5f, 0 });

            case AnimationSide.Left:
                return(new[] { -50, 0, -3.5f, 0 });

            default:
                throw new ArgumentException("Unexpected side");
            }
        }
コード例 #2
0
        public void StartAnimating(AnimationSide side)
        {
            if (animator != null && animator.IsRunning)
            {
                return;
            }

            mainLogBackgroundContinue.Visibility = side == AnimationSide.Right ? ViewStates.Visible : ViewStates.Invisible;
            mainLogBackgroundDelete.Visibility   = side == AnimationSide.Left ? ViewStates.Visible : ViewStates.Invisible;

            var offsetsInDp = getAnimationOffsetsForSide(side);
            var offsetsInPx = offsetsInDp.Select(offset => (float)offset.DpToPixels(ItemView.Context)).ToArray();

            animator = ObjectAnimator.OfFloat(MainLogContentView, "translationX", offsetsInPx);
            animator.SetDuration(animationDuration);
            animator.RepeatMode  = ValueAnimatorRepeatMode.Reverse;
            animator.RepeatCount = ValueAnimator.Infinite;
            animator.Start();
        }