溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Xamarin圖表開發(fā)基礎(chǔ)教程(8)OxyPlot框架

發(fā)布時間:2020-08-16 15:22:36 來源:ITPUB博客 閱讀:249 作者:大學(xué)霸 欄目:移動開發(fā)

Xamarin圖表開發(fā)基礎(chǔ)教程(8)OxyPlot框架

【示例OxyPlotFormsDemo 】在Xamarin.Forms中實現(xiàn)線圖的顯示。

(1)打開Xamarin.Forms項目。

(2)將OxyPlot.Xamarin.Forms組件添加到各個子項目中的引入中。

(3)打開OxyPlotFormsDemo.Android子項目的MainActivity.cs文件,初始化OxyPlot渲染器,代碼如下:

using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
namespace OxyPlotFormsDemo.Droid
{
    [Activity(Label = "OxyPlotFormsDemo", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            OxyPlot.Xamarin.Forms.Platform.Android.PlotViewRenderer.Init();
            LoadApplication(new App());
        }
    }
}

(4)打開OxyPlotFormsDemo.iOS子項目的AppDelegate.cs文件,初始化OxyPlot渲染器,代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using Foundation;
using UIKit;
namespace OxyPlotFormsDemo.iOS
{
    [Register("AppDelegate")]
    public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
    {
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            global::Xamarin.Forms.Forms.Init();
            OxyPlot.Xamarin.Forms.Platform.iOS.PlotViewRenderer.Init();
            LoadApplication(new App());
            return base.FinishedLaunching(app, options);
        }
    }
}

(5)打開App.xaml.cs文件,完成剩余的步驟,即創(chuàng)建PlotView視圖、繪制圖表、設(shè)置顯示模式等。代碼如下:

using OxyPlot;
using OxyPlot.Axes;
using OxyPlot.Series;
using OxyPlot.Xamarin.Forms;
using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace OxyPlotFormsDemo
{
    public partial class App : Application
    {
        public App()
        {
            MainPage = new ContentPage
            {
                //創(chuàng)建并將主頁面的內(nèi)容設(shè)置為PlotView
                Content = new PlotView
                {
                    Model = CreatePlotModel(),
                    VerticalOptions = LayoutOptions.Fill,
                    HorizontalOptions = LayoutOptions.Fill,
                }
            };
        }
        //繪制圖表
        private PlotModel CreatePlotModel()
        {
            //創(chuàng)建圖表模式
            var plotModel = new PlotModel
            {
                Title = "OxyPlot Demo"
            };
            //添加坐標軸
            plotModel.Axes.Add(new LinearAxis { Position = AxisPosition.Bottom });
            plotModel.Axes.Add(new LinearAxis { Position = AxisPosition.Left, Maximum = 10, Minimum = 0 });
            //創(chuàng)建數(shù)據(jù)列
            var series1 = new LineSeries
            {
                Title = "Data",
                MarkerType = MarkerType.Circle,
                MarkerSize = 4,
                MarkerStroke = OxyColors.White
            };
            //添加數(shù)據(jù)點
            series1.Points.Add(new DataPoint(0.0, 6.0));
            series1.Points.Add(new DataPoint(1.4, 2.1));
            series1.Points.Add(new DataPoint(2.0, 4.2));
            series1.Points.Add(new DataPoint(3.3, 2.3));
            series1.Points.Add(new DataPoint(4.7, 7.4));
            series1.Points.Add(new DataPoint(6.0, 6.2));
            series1.Points.Add(new DataPoint(8.9, 8.9));
            //添加數(shù)據(jù)列
            plotModel.Series.Add(series1);
            return plotModel;
        }
        ……
    }
}

運行程序,會看到如圖1.3所示的效果。

  Xamarin圖表開發(fā)基礎(chǔ)教程(8)OxyPlot框架

圖1.3  Android的效果與 iOS的效果

 

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI