public override UIImage GenerateBackgroundImage()
        {
            UIImage resultImage;

            UIGraphics.BeginImageContextWithOptions(BackBounds.Size, false, UIScreen.MainScreen.Scale);
            var center = new CGPoint(BackBounds.GetMidX(), BackBounds.GetMidY());

            using (var context = UIGraphics.GetCurrentContext())
                using (var circlePath = UIBezierPath.FromOval(new CGRect(CGPoint.Empty, BackBounds.Size)))
                    using (var borderBagelPath = BezierPathGenerator.Bagel(center, StartBorderRadius, EndBorderRadius, 0f, FullCircleAngle))
                        using (var innerBorderBagelPath = BezierPathGenerator.Bagel(center, StartBorderRadius + BorderPadding, EndBorderRadius - BorderPadding, 0f, FullCircleAngle)) {
                            context.SaveState();
                            context.SetFillColor(BackCircleBackgroundColor);
                            circlePath.Fill();
                            context.RestoreState();

                            context.SaveState();
                            context.SetFillColor(BackBorderColor);
                            borderBagelPath.Fill();
                            context.RestoreState();

                            context.SaveState();
                            context.SetFillColor(BackInnerBorderColor);
                            innerBorderBagelPath.Fill();
                            context.RestoreState();

                            resultImage = UIGraphics.GetImageFromCurrentImageContext();
                        }

            return(resultImage);
        }
Beispiel #2
0
        public override UIImage GenerateBackgroundImage()
        {
            UIImage resultImage;

            UIGraphics.BeginImageContextWithOptions(BackBounds.Size, false, UIScreen.MainScreen.Scale);
            var center = new CGPoint(BackBounds.GetMidX(), BackBounds.GetMidY());

            using (var context = UIGraphics.GetCurrentContext())
                using (var innerBorderBagelPath = BezierPathGenerator.Bagel(center, startRadius, endRadius, 0f, FullCircleAngle))
                {
                    context.SaveState();
                    context.SetFillColor(BGColors.CGColor);
                    innerBorderBagelPath.Fill();
                    context.RestoreState();

                    resultImage = UIGraphics.GetImageFromCurrentImageContext();
                }

            return(resultImage);
        }