示例#1
0
        public Calculator(Activity activity, FocusShape focusShape, View view, double radiusFactor, bool fitSystemWindows)
        {
            DisplayMetrics displayMetrics = new DisplayMetrics();

            activity.WindowManager.DefaultDisplay.GetMetrics(displayMetrics);
            int deviceWidth  = displayMetrics.WidthPixels;
            int deviceHeight = displayMetrics.HeightPixels;

            mBitmapWidth  = deviceWidth;
            mBitmapHeight = deviceHeight - (fitSystemWindows ? 0 : ShowcaseUtils.GetStatusBarHeight(activity));
            if (view != null)
            {
                int   adjustHeight = (fitSystemWindows && Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop ? 0 : ShowcaseUtils.GetStatusBarHeight(activity));
                int[] viewPoint    = new int[2];
                view.GetLocationInWindow(viewPoint);
                mFocusWidth    = view.Width;
                mFocusHeight   = view.Height;
                mFocusShape    = focusShape;
                mCircleCenterX = viewPoint[0] + mFocusWidth / 2;
                mCircleCenterY = viewPoint[1] + mFocusHeight / 2 - adjustHeight;
                mCircleRadius  = (int)((int)(Java.Lang.Math.Hypot(view.Width, view.Height) / 2) * radiusFactor);
                mHasFocus      = true;
            }
            else
            {
                mHasFocus = false;
            }
        }
示例#2
0
 public void SetCirclePosition(int positionX, int positionY, int radius)
 {
     mCircleCenterX = positionX;
     mCircleRadius  = radius;
     mCircleCenterY = positionY;
     mFocusShape    = FocusShape.Circle;
     mHasFocus      = true;
 }
示例#3
0
 public void SetRectPosition(int positionX, int positionY, int rectWidth, int rectHeight)
 {
     mCircleCenterX = positionX;
     mCircleCenterY = positionY;
     mFocusWidth    = rectWidth;
     mFocusHeight   = rectHeight;
     mFocusShape    = FocusShape.RoundedRectangle;
     mHasFocus      = true;
 }
        private ShowCaseView(Context mActivity, string mTitle, ISpanned mSpannedTitle, string mId, double mFocusCircleRadiusFactor, View mView, Color mBackgroundColor, Color mFocusBorderColor, int mTitleGravity, int mTitleStyle, int mTitleSize, int mTitleSizeUnit, int mCustomViewRes, int mFocusBorderSize, int mRoundRectRadius, OnViewInflateListener mViewInflateListener, Animation mEnterAnimation, Animation mExitAnimation, AnimationListener mAnimationListener, bool mCloseOnTouch, bool mEnableTouchOnFocusedView, bool mFitSystemWindows, FocusShape mFocusShape, DismissListener mDismissListener, long mDelay, int mFocusAnimationMaxValue, int mFocusAnimationStep, int mFocusPositionX, int mFocusPositionY, int mFocusCircleRadius, int mFocusRectangleWidth, int mFocusRectangleHeight, bool mFocusAnimationEnabled, int mAnimationDuration = 400, int mCenterX = 0, int mCenterY = 0, ViewGroup mRoot = null, ISharedPreferences mSharedPreferences = null, Calculator mCalculator = null, float[] mLastTouchDownXY = null) : base(mActivity)
        {
            this.mActivity                 = (mActivity as Activity);
            this.mTitle                    = mTitle;
            this.mSpannedTitle             = mSpannedTitle;
            this.mId                       = mId;
            this.mFocusCircleRadiusFactor  = mFocusCircleRadiusFactor;
            this.mView                     = mView;
            this.mBackgroundColor          = mBackgroundColor;
            this.mFocusBorderColor         = mFocusBorderColor;
            this.mTitleGravity             = mTitleGravity;
            this.mTitleStyle               = mTitleStyle;
            this.mTitleSize                = mTitleSize;
            this.mTitleSizeUnit            = mTitleSizeUnit;
            this.mCustomViewRes            = mCustomViewRes;
            this.mFocusBorderSize          = mFocusBorderSize;
            this.mRoundRectRadius          = mRoundRectRadius;
            this.mViewInflateListener      = mViewInflateListener;
            this.mEnterAnimation           = mEnterAnimation;
            this.mExitAnimation            = mExitAnimation;
            this.mAnimationListener        = mAnimationListener;
            this.mCloseOnTouch             = mCloseOnTouch;
            this.mEnableTouchOnFocusedView = mEnableTouchOnFocusedView;
            this.mFitSystemWindows         = mFitSystemWindows;
            this.mFocusShape               = mFocusShape;
            this.mDismissListener          = mDismissListener;
            this.mDelay                    = mDelay;
            this.mAnimationDuration        = mAnimationDuration;
            this.mFocusAnimationMaxValue   = mFocusAnimationMaxValue;
            this.mFocusAnimationStep       = mFocusAnimationStep;
            this.mCenterX                  = mCenterX;
            this.mCenterY                  = mCenterY;
            this.mRoot                     = mRoot;
            this.mSharedPreferences        = mSharedPreferences;
            this.mCalculator               = mCalculator;
            this.mFocusPositionX           = mFocusPositionX;
            this.mFocusPositionY           = mFocusPositionY;
            this.mFocusCircleRadius        = mFocusCircleRadius;
            this.mFocusRectangleWidth      = mFocusRectangleWidth;
            this.mFocusRectangleHeight     = mFocusRectangleHeight;
            this.mLastTouchDownXY          = mLastTouchDownXY;
            this.mFocusAnimationEnabled    = mFocusAnimationEnabled;

            InitializeParameters();
        }
 /// <summary>
 /// Select the type of focus shape: Circle or Rounded Rectangle
 /// </summary>
 /// <param name="focusShape"></param>
 /// <returns></returns>
 public Builder FocusShape(FocusShape focusShape)
 {
     mFocusShape = focusShape;
     return(this);
 }