/// <summary>
        /// Hides the ShowCaseView with animation
        /// </summary>
        public void Hide()
        {
            if (mExitAnimation != null)
            {
                StartAnimation(mExitAnimation);
            }
            else if (ShowcaseUtils.ShouldShowCircularAnimation())
            {
                DoCircularExitAnimation();
            }
            else
            {
                Animation fadeOut = AnimationUtils.LoadAnimation(mActivity, Resource.Animation.fade_out);
                fadeOut.AnimationEnd += (s, e) =>
                {
                    RemoveView();
                    if (mAnimationListener != null)
                    {
                        mAnimationListener.OnExitAnimationEnd();
                    }
                };

                fadeOut.FillAfter = true;
                StartAnimation(fadeOut);
            }
        }
        /// <summary>
        /// Starts enter animation of ShowCaseView
        /// </summary>
        private void StartEnterAnimation()
        {
            if (mEnterAnimation != null)
            {
                StartAnimation(mEnterAnimation);
            }
            else if (ShowcaseUtils.ShouldShowCircularAnimation())
            {
                DoCircularEnterAnimation();
            }
            else
            {
                Animation fadeInAnimation = AnimationUtils.LoadAnimation(mActivity, Resource.Animation.fade_in);
                fadeInAnimation.FillAfter     = true;
                fadeInAnimation.AnimationEnd += (s, e) =>
                {
                    if (mAnimationListener != null)
                    {
                        mAnimationListener.OnEnterAnimationEnd();
                    }
                };

                StartAnimation(fadeInAnimation);
            }
        }