本文整理汇总了C#中Android.DrawArc方法的典型用法代码示例。如果您正苦于以下问题:C# Android.DrawArc方法的具体用法?C# Android.DrawArc怎么用?C# Android.DrawArc使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Android
的用法示例。
在下文中一共展示了Android.DrawArc方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Draw
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));
}
}
示例2: OnDraw
protected override void OnDraw(Android.Graphics.Canvas canvas)
{
var radius = (Height / 2) - 4;
var middleX = Width / 2;
var middleY = Height / 2;
var minutes = (int)time.TotalMinutes;
var rotation = minutes / 60;
var color = baseQuadrantColor;
for (int i = 0; i <= rotation; i++) {
var angle = minutes > 60 ? 360 : (int)((minutes * 360f) / 60);
canvas.DrawArc (new RectF (middleX - radius, middleY - radius, middleX + radius, middleY + radius), -90, angle, true, new Paint {
Color = color,
AntiAlias = true,
});
minutes -= 60;
color = Color.Rgb ((byte)Math.Max (0, color.R - 30),
(byte)Math.Max (0, color.G - 30),
(byte)Math.Max (0, color.B - 30));
}
// Draw chrome
Paint chromeBorder = new Paint {
AntiAlias = true,
Color = chromeColor,
StrokeWidth = 1.ToPixels ()
};
chromeBorder.SetStyle (Paint.Style.Stroke);
canvas.DrawCircle (middleX, middleY, radius, chromeBorder);
// Draw markers
var markerPaint = new Paint {
Color = chromeColor,
AntiAlias = true
};
var innerRadius = radius - 6;
for (int i = 0; i < 8; i++) {
var stepAngle = i * Math.PI / 4;
canvas.DrawCircle (middleX - (int)Math.Round (Math.Sin (stepAngle) * innerRadius),
middleY - (int)Math.Round (Math.Cos (stepAngle) * innerRadius),
1, markerPaint);
}
}