示例#1
0
            public static ChartTypeModel NewVerticallyStackedMountains(PenStyle.Builder penBuilder, bool isOneHundredPercent)
            {
                var collection = new VerticallyStackedMountainsCollection {
                    IsOneHundredPercent = isOneHundredPercent
                };

                for (var i = 0; i < 5; i++)
                {
                    var dataSeries = new XyDataSeries <double, double> {
                        SeriesName = "Series " + (i + 1)
                    };
                    dataSeries.Append(DashboardDataHelper.XValues, DashboardDataHelper.YValues[i]);

                    var rSeries = new StackedMountainRenderableSeries
                    {
                        DataSeries  = dataSeries,
                        StrokeStyle = penBuilder.WithColor(new Color(SeriesColors[i * 2])).WithThickness(1f, ComplexUnitType.Dip).Build(),
                        AreaStyle   = new LinearGradientBrushStyle(0, 0, 0, 1, new Color(SeriesColors[i * 2 + 1]), new Color(SeriesColors[i * 2]), TileMode.Clamp)
                    };
                    collection.Add(rSeries);
                }

                var name = isOneHundredPercent ? "100% " : "";

                name += "Stacked mountains";
                return(new ChartTypeModel(collection, name));
            }
示例#2
0
        protected override void InitExample()
        {
            for (int i = 0; i < DashboardDataHelper.Colors.Length; i++)
            {
                int color = Resources.GetColor(DashboardDataHelper.Colors[i]);
                SeriesColors[i] = color;
            }

            var builder = new PenStyle.Builder(Activity);

            _chartTypesSource.Add(ChartTypeModelFactory.NewHorizontallyStackedColumns(builder));
            _chartTypesSource.Add(ChartTypeModelFactory.NewVerticallyStackedColumns(builder, false));
            _chartTypesSource.Add(ChartTypeModelFactory.NewVerticallyStackedColumns(builder, true));
            _chartTypesSource.Add(ChartTypeModelFactory.NewVerticallyStackedMountains(builder, false));
            _chartTypesSource.Add(ChartTypeModelFactory.NewVerticallyStackedMountains(builder, true));

            //this line fixes swiping lag of the viewPager by caching the pages
            ViewPager.OffscreenPageLimit = 5;
            ViewPager.Adapter            = new ViewPagerAdapter(Activity.BaseContext, _chartTypesSource);
            TabLayout.SetupWithViewPager(ViewPager);
        }
示例#3
0
            public static ChartTypeModel NewHorizontallyStackedColumns(PenStyle.Builder penBuilder)
            {
                var seriesCollection = new HorizontallyStackedColumnsCollection();

                for (var i = 0; i < 5; i++)
                {
                    var dataSeries = new XyDataSeries <double, double> {
                        SeriesName = "Series " + (i + 1)
                    };
                    dataSeries.Append(DashboardDataHelper.XValues, DashboardDataHelper.YValues[i]);

                    var rSeries = new StackedColumnRenderableSeries
                    {
                        DataSeries     = dataSeries,
                        StrokeStyle    = penBuilder.WithColor(new Color(SeriesColors[i * 2])).WithThickness(1f, ComplexUnitType.Dip).Build(),
                        FillBrushStyle = new LinearGradientBrushStyle(0, 0, 0, 1, new Color(SeriesColors[i * 2 + 1]), new Color(SeriesColors[i * 2]), TileMode.Clamp)
                    };
                    seriesCollection.Add(rSeries);
                }

                const string name = "Stacked columns side-by-side";

                return(new ChartTypeModel(seriesCollection, name));
            }
示例#4
0
        protected override void InitExample()
        {
            var xAxis = new NumericAxis(Activity)
            {
                AutoRange = AutoRange.Always
            };

            var leftAxis = new NumericAxis(Activity)
            {
                AxisAlignment = AxisAlignment.Left,
                AxisId        = AxisAlignment.Left.Name()
            };

            var rightAxis = new NumericAxis(Activity)
            {
                AxisAlignment = AxisAlignment.Right,
                AxisId        = AxisAlignment.Right.Name()
            };

            using (Surface.SuspendUpdates())
            {
                Surface.XAxes.Add(xAxis);
                Surface.YAxes = new AxisCollection {
                    leftAxis, rightAxis
                };

                var initialColor = Color.Blue;

                for (var i = 0; i < SeriesCount; i++)
                {
                    var alignment  = i % 2 == 0 ? AxisAlignment.Left : AxisAlignment.Right;
                    var dataSeries = GenerateDataSeries(alignment, i);

                    var rs = new FastLineRenderableSeries
                    {
                        DataSeries  = dataSeries,
                        YAxisId     = alignment.Name(),
                        StrokeStyle = new PenStyle.Builder(Activity).WithColor(initialColor).WithThickness(2, ComplexUnitType.Dip).Build()
                    };

                    // Colors are incremented for visual purposes only
                    var newR = initialColor.R == 255 ? 255 : initialColor.R + 5;
                    var newB = initialColor.B == 0 ? 0 : initialColor.B - 2;
                    initialColor = Color.Argb(255, (byte)newR, initialColor.G, (byte)newB);

                    Surface.RenderableSeries.Add(rs);
                }

                var selectedStrokeStyle = new PenStyle.Builder(Activity).WithColor(Color.White).WithThickness(4f).Build();
                var selectedPointMarker = new EllipsePointMarker
                {
                    Width       = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 10, Context.Resources.DisplayMetrics),
                    Height      = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 10, Context.Resources.DisplayMetrics),
                    FillStyle   = new SolidBrushStyle(Color.Argb(0xFF, 0xFF, 0x00, 0xDC)),
                    StrokeStyle = new PenStyle.Builder(Activity).WithColor(Color.White).WithThickness(1f).Build()
                };

                Surface.ChartModifiers.Add(new SeriesSelectionModifier
                {
                    SelectedSeriesStyle = new SelectedSeriesStyle(selectedStrokeStyle, selectedPointMarker)
                });
            }
        }