-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathCandlestickChartFragment.cs
62 lines (54 loc) · 2.63 KB
/
CandlestickChartFragment.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using System;
using Android.Views.Animations;
using SciChart.Charting.Model;
using SciChart.Charting.Model.DataSeries;
using SciChart.Charting.Modifiers;
using SciChart.Charting.Visuals;
using SciChart.Charting.Visuals.Animations;
using SciChart.Charting.Visuals.Axes;
using SciChart.Charting.Visuals.RenderableSeries;
using SciChart.Data.Model;
using SciChart.Drawing.Common;
using SciChart.Examples.Demo.Data;
using SciChart.Examples.Demo.Fragments.Base;
using Xamarin.Examples.Demo.Droid.Extensions;
using Xamarin.Examples.Demo.Droid.Fragments.Base;
namespace Xamarin.Examples.Demo.Droid.Fragments.Examples
{
[ExampleDefinition("Candlestick Chart", description:"Creates a simple Candlestick Chart", icon: ExampleIcon.CandlestickChart)]
public class CandlestickChartFragment : ExampleBaseFragment
{
public override int ExampleLayoutId => Resource.Layout.Example_Single_Chart_Fragment;
private SciChartSurface Surface => View.FindViewById<SciChartSurface>(Resource.Id.chart);
protected override void InitExample()
{
var priceSeries = DataManager.Instance.GetPriceDataIndu();
var dataSeries = new OhlcDataSeries<DateTime, double>();
dataSeries.Append(priceSeries.TimeData, priceSeries.OpenData, priceSeries.HighData, priceSeries.LowData, priceSeries.CloseData);
var size = priceSeries.Count;
var xAxis = new CategoryDateAxis(Activity) {VisibleRange = new DoubleRange(size - 30, size), GrowBy = new DoubleRange(0, 0.1)};
var yAxis = new NumericAxis(Activity) {GrowBy = new DoubleRange(0, 0.1), AutoRange = AutoRange.Always};
var rSeries = new FastCandlestickRenderableSeries
{
DataSeries = dataSeries,
StrokeUpStyle = new SolidPenStyle(0xFF00AA00, 1.ToDip(Activity)),
StrokeDownStyle = new SolidPenStyle(0xFFFF0000, 1.ToDip(Activity)),
FillUpBrushStyle = new SolidBrushStyle(0x8800AA00),
FillDownBrushStyle = new SolidBrushStyle(0x88FF0000)
};
using (Surface.SuspendUpdates())
{
Surface.XAxes.Add(xAxis);
Surface.YAxes.Add(yAxis);
Surface.RenderableSeries.Add(rSeries);
Surface.ChartModifiers = new ChartModifierCollection
{
new ZoomPanModifier(),
new PinchZoomModifier(),
new ZoomExtentsModifier(),
};
new WaveAnimatorBuilder(rSeries) { Interpolator = new DecelerateInterpolator(), Duration = 3000, StartDelay = 350}.Start();
}
}
}
}