PhotoViewerTest.Droid.PhotoViewDroidAttacher.CheckMatrixBounds C# (CSharp) 메소드

CheckMatrixBounds() 개인적인 메소드

private CheckMatrixBounds ( ) : bool
리턴 bool
        private bool CheckMatrixBounds()
        {
            ImageView imageView = GetImageView();
            if (null == imageView) {
                return false;
            }

            RectF rect = GetDisplayRect(GetDrawMatrix());
            if (null == rect) {
                return false;
            }
            float height = rect.Height(), width = rect.Width();
            float deltaX = 0, deltaY = 0;

            int viewHeight = GetImageViewHeight(imageView);

            if (height <= viewHeight)
            {
                if (mScaleType.Name ().Equals (ImageView.ScaleType.FitStart.Name ())) {
                    deltaY = -rect.Top;
                }
                else if (ImageView.ScaleType.FitEnd.Equals (mScaleType.Name ())) {
                    deltaY = viewHeight - height - rect.Top;
                }
                else{
                    deltaY = (viewHeight - height) / 2 - rect.Top;
                }

            }
            else if (rect.Top > 0) {
                deltaY = -rect.Top;
            } else if (rect.Bottom < viewHeight) {
                deltaY = viewHeight - rect.Bottom;
            }

            int viewWidth = GetImageViewWidth(imageView);
            if (width <= viewWidth) {
                if (mScaleType.Name().Equals(ImageView.ScaleType.FitStart.Name())) {
                    deltaX = -rect.Left;
                }
                else if (mScaleType.Name().Equals(ImageView.ScaleType.FitEnd.Name())) {
                    deltaX = viewWidth - width - rect.Left;
                }
                else {
                    deltaX = (viewWidth - width) / 2 - rect.Left;
                }
                mScrollEdge = EDGE_BOTH;
            }
            else if (rect.Left > 0) {
                mScrollEdge = EDGE_LEFT;
                deltaX = -rect.Left;
            } else if (rect.Right < viewWidth) {
                deltaX = viewWidth - rect.Right;
                mScrollEdge = EDGE_RIGHT;
            } else {
                mScrollEdge = EDGE_NONE;
            }
            // Finally actually translate the matrix
            mSuppMatrix.PostTranslate(deltaX, deltaY);
            return true;
        }