public override void Draw(Android.Graphics.Canvas canvas) { base.Draw (canvas); Paint mBgPaints = new Paint (); mBgPaints.AntiAlias = true; mBgPaints.SetStyle (Paint.Style.Fill); mBgPaints.Color = Color.Blue; mBgPaints.StrokeWidth = 0.5f; Paint tPaint = new Paint (); tPaint.Alpha = 0; canvas.DrawColor (tPaint.Color); RectF mOvals = new RectF (40, 40, layout.MeasuredWidth - 40, layout.MeasuredHeight - 40); decimal total = 0; foreach (SecuritiesViewModel.PieChartValue value in securitiesViewModel.DataForPieChart ()) { total += value.amount; } if (total == 0) { return; } decimal degressPerAmount = 360 / total; decimal currentAngle = 0; foreach (SecuritiesViewModel.PieChartValue value in securitiesViewModel.DataForPieChart ()) { canvas.DrawArc (mOvals, (float)currentAngle, (float)(degressPerAmount * value.amount), true, mBgPaints); currentAngle += (degressPerAmount * value.amount); mBgPaints.SetARGB (255, new Random ().Next (256), new Random ().Next (256), new Random ().Next (256)); } }
protected override void DispatchDraw (Android.Graphics.Canvas canvas) { // Draw interior shadow canvas.Save (); canvas.ClipRect (0, 0, Width, Height); canvas.DrawPaint (shadow); canvas.Restore (); base.DispatchDraw (canvas); // Draw custom list separator canvas.Save (); canvas.ClipRect (0, Height - 2, Width, Height); canvas.DrawColor (Android.Graphics.Color.Rgb (LightTone, LightTone, LightTone)); canvas.Restore (); }