public static RectangleF GetImageFrameForNewImageLayer(ImageView image, RectangleF layerHandlerFrame)
        {
            Rect imageSize = new Rect ();
            float spacing = 10f;
            image.GetDrawingRect (imageSize);

            // Get the image dimension ratio
            float imageRatio =
                imageSize.Width () > imageSize.Height () ?
                    imageSize.Width () / imageSize.Height () :
                    imageSize.Height () / imageSize.Width ();

            // Get the image view size
            float imageViewSize =
                layerHandlerFrame.Width > layerHandlerFrame.Height ?
                    layerHandlerFrame.Height - (spacing * 8f) :
                    layerHandlerFrame.Width - (spacing * 8f);

            float displayWidth =
                imageSize.Width () > imageSize.Height () ?
                    imageViewSize :
                    imageViewSize / imageRatio;
            float displayHeight =
                imageSize.Height () > imageSize.Width () ?
                    imageViewSize :
                    imageViewSize / imageRatio;

            return new RectangleF (spacing * 4f,
                                  spacing * 4f,
                                  displayWidth,
                                  displayHeight);
        }