我试图将图表添加到我的Xamarin Android应用程序(Visual Studio 2017) 我关注了此存储库MicroCharts,Post
我在我的应用程序中使用了导航抽屉。所以我使用片段添加我的代码。上面提到的存储库是针对Xamarin.Forms跨平台的。但我只是使用Xamarin.Android。
我有一个Xamarin.Android存储库here。 任何帮助将受到高度赞赏。谢谢
答案 0 :(得分:1)
您可以参考:https://github.com/aloisdeniel/Microcharts
以下是有关如何在BarChart
中使用Fragment
的简单演示:
首先,将其添加到您的UI
, MGradesView.axml :
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<microcharts.droid.ChartView
android:id="@+id/chartView"
android:layout_width="match_parent"
android:layout_height="160dp" />
</LinearLayout>
</ScrollView>
其次,您的图表需要一组数据条目:
var entries = new[]
{
new Entry(200)
{
Label = "January",
ValueLabel = "200",
Color = SKColor.Parse("#266489")
},
new Entry(400)
{
Label = "February",
ValueLabel = "400",
Color = SKColor.Parse("#68B9C0")
},
new Entry(-100)
{
Label = "March",
ValueLabel = "-100",
Color = SKColor.Parse("#90D585")
}
};
第三,从这些条目中实现图表:
var chart = new BarChart() { Entries = entries };
像这样修改你的MGradeFragment.cs
:
public class MGradeFragment : Fragment
{
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
SetHasOptionsMenu(true);
View view = LayoutInflater.From(Activity).Inflate(Resource.Layout.MGradesView, null);
var entries = new[]
{
new Entry(200)
{
Label = "January",
ValueLabel = "200",
Color = SKColor.Parse("#266489")
},
new Entry(400)
{
Label = "February",
ValueLabel = "400",
Color = SKColor.Parse("#68B9C0")
},
new Entry(-100)
{
Label = "March",
ValueLabel = "-100",
Color = SKColor.Parse("#90D585")
}
};
var chart = new BarChart() { Entries = entries };
var chartView = view.FindViewById<ChartView>(Resource.Id.chartView);
chartView.Chart = chart;
return view;
}
public override void OnCreateOptionsMenu(IMenu menu, MenuInflater inflater)
{
inflater.Inflate(Resource.Menu.menu_MGradeToolbar, menu);
}
}