protected override void OnDraw(global::Android.Graphics.Canvas canvas)
        {
            var rect = new Rect();

            GetDrawingRect(rect);

            var halfThickness = Element.StrokeThickness / 2f;

            var RectangleRect = new RectF(
                rect.Left + halfThickness,
                rect.Top + halfThickness,
                rect.Right - halfThickness,
                rect.Bottom - halfThickness);

            var paint = new Paint(PaintFlags.AntiAlias);

            if (Element.Fill.A != 0)
            {
                var circleDotFillPath = new Path();
                circleDotFillPath.AddRect(RectangleRect, Path.Direction.Cw);

                paint.SetStyle(Paint.Style.Fill);
                paint.Color = Element.Fill.ToAndroid();
                canvas.DrawRect(RectangleRect, paint);
            }

            paint.StrokeWidth = Element.StrokeThickness;
            paint.StrokeMiter = 10f;
            canvas.Save();
            paint.SetStyle(Paint.Style.Stroke);
            paint.Color = Element.Stroke.ToAndroid();
            canvas.DrawRect(RectangleRect, paint);
            canvas.Restore();
        }
Пример #2
0
        public override void Draw(global::Android.Graphics.Canvas canvas)
        {
            // fill color
            var paint2 = new global::Android.Graphics.Paint();

            paint2.Color = this._backcolor;
            paint2.SetStyle(global::Android.Graphics.Paint.Style.Fill);
            canvas.DrawRect(this._rect, paint2);

            canvas.DrawRect(this._rect, this._paint);
        }
Пример #3
0
        protected override void DispatchDraw(global::Android.Graphics.Canvas canvas)
        {
            #region for Vertical Gradient
            //var gradient = new Android.Graphics.LinearGradient(0, 0, 0, Height,
            #endregion

            #region for Horizontal Gradient
            var gradient = new Android.Graphics.LinearGradient(0, 0, Width, 0,
                                                               #endregion

                                                               this.StartColor.ToAndroid(),
                                                               this.EndColor.ToAndroid(),
                                                               Android.Graphics.Shader.TileMode.Mirror);

            var paint = new Android.Graphics.Paint()
            {
                Dither = true,
            };
            paint.SetShader(gradient);
            canvas.DrawRect(new Android.Graphics.Rect(0, 0, Width, Height), paint);
            base.DispatchDraw(canvas);
        }