コード例 #1
0
        public LoadToast(Context context)
        {
            mView       = new LoadToastView(context);
            mParentView = (ViewGroup)((Activity)context).Window.DecorView.FindViewById(Android.Resource.Id.Content);
            mParentView.AddView(mView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
            ViewHelper.SetAlpha(mView, 0);

            mParentView.PostDelayed(new Runnable(() =>
            {
                ViewHelper.SetTranslationX(mView, (mParentView.Width - mView.Width) / 2);
                ViewHelper.SetTranslationY(mView, -mView.Height + mTranslationY);
                mInflated = true;
                if (!mToastCanceled && mShowCalled)
                {
                    show();
                }
            }), 1);

            mParentView.ViewTreeObserver.AddOnGlobalLayoutListener(new OnGlobalLayoutListener()
            {
                GlobalLayout = () =>
                {
                    checkZPosition();
                }
            });
        }
コード例 #2
0
        /// <summary>
        /// Determines visble view anit's circle positioning
        /// </summary>
        private void Focus()
        {
            mCalculator = new Calculator(mActivity, mFocusShape, mView, mFocusCircleRadiusFactor, mFitSystemWindows);
            ViewGroup androidContent = mActivity.FindViewById <ViewGroup>(Android.Resource.Id.Content);

            mRoot = (ViewGroup)androidContent.Parent.Parent;

            mRoot.PostDelayed(() =>
            {
                if (mActivity == null || mActivity.IsFinishing)
                {
                    return;
                }

                ShowCaseView visibleView = (ShowCaseView)mRoot.FindViewWithTag(CONTAINER_TAG);
                Clickable = !mEnableTouchOnFocusedView;

                if (visibleView == null)
                {
                    Tag = CONTAINER_TAG;

                    if (mCloseOnTouch)
                    {
                        SetupTouchListener();
                    }

                    LayoutParameters = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent);

                    mRoot.AddView(this);

                    ShowCaseImageView imageView = new ShowCaseImageView(mActivity);
                    imageView.SetFocusAnimationParameters(mFocusAnimationMaxValue, mFocusAnimationStep);

                    if (mCalculator.HasFocus)
                    {
                        mCenterX = mCalculator.CircleCenterX;
                        mCenterY = mCalculator.CircleCenterY;
                    }

                    imageView.SetParameters(mBackgroundColor, mCalculator);

                    if (mFocusRectangleWidth > 0 && mFocusRectangleHeight > 0)
                    {
                        mCalculator.SetRectPosition(mFocusPositionX, mFocusPositionY, mFocusRectangleWidth, mFocusRectangleHeight);
                    }

                    if (mFocusCircleRadius > 0)
                    {
                        mCalculator.SetCirclePosition(mFocusPositionX, mFocusPositionY, mFocusCircleRadius);
                    }

                    imageView.SetAnimationEnabled(mFocusAnimationEnabled);
                    imageView.LayoutParameters = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent);

                    if (mFocusBorderColor != 0 && mFocusBorderSize > 0)
                    {
                        imageView.SetBorderParameters(mFocusBorderColor, mFocusBorderSize);
                    }

                    if (mRoundRectRadius > 0)
                    {
                        imageView.setRoundRectRadius(mRoundRectRadius);
                    }

                    AddView(imageView);

                    if (mCustomViewRes == 0)
                    {
                        InflateTitleView();
                    }
                    else
                    {
                        InflateCustomView(mCustomViewRes, mViewInflateListener);
                    }

                    StartEnterAnimation();
                    WriteShown();
                }
            }, mDelay);
        }