📜  如何在Android中创建条形图?(1)

📅  最后修改于: 2023-12-03 14:52:39.323000             🧑  作者: Mango

在Android中创建条形图

条形图是一种常见的数据可视化方式,在Android中也可以通过使用开源图表库实现。本文将介绍如何使用MPAndroidChart库在Android中创建条形图。

步骤
1. 添加依赖

首先,需要在项目中添加MPAndroidChart库的依赖。可以在项目的build.gradle文件的dependencies节点中添加如下代码:

implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
2. 创建布局

在布局文件中添加一个BarChart视图:

<com.github.mikephil.charting.charts.BarChart
    android:id="@+id/bar_chart"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
3. 创建数据集

创建一个BarEntry对象的ArrayList来存储我们的数据,并将其传递给BarDataSet:

ArrayList<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry(0f, 30f));
entries.add(new BarEntry(1f, 40f));
entries.add(new BarEntry(2f, 20f));
entries.add(new BarEntry(3f, 50f));
entries.add(new BarEntry(4f, 10f));

BarDataSet dataSet = new BarDataSet(entries, "Label"); 
4. 创建BarData对象

使用BarDataSet作为参数创建一个BarData对象:

BarData data = new BarData(dataSet);
5. 配置条形图

获取BarChart对象并进行相关配置:

BarChart chart = findViewById(R.id.bar_chart);
chart.setData(data);
chart.setFitBars(true);
chart.getDescription().setEnabled(false);
chart.getXAxis().setEnabled(false);
chart.getAxisLeft().setDrawGridLines(false);
chart.getAxisRight().setDrawGridLines(false);
chart.getAxisLeft().setDrawLabels(false);
chart.getAxisRight().setDrawLabels(false);
chart.getLegend().setEnabled(false);
chart.animateY(1000);
chart.invalidate();

在这个示例中,我们对条形图进行如下配置:

  • 设置数据源为我们刚才创建的BarData对象;
  • 设置 FitBars 属性为 true,使条形图填充整个图表;
  • 禁用描述性文本;
  • 禁用x轴,左侧y轴和右侧y轴的网格线和标签;
  • 禁用图例;
  • 以动画形式显示条形图。
完整代码

最终的代码如下:

ArrayList<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry(0f, 30f));
entries.add(new BarEntry(1f, 40f));
entries.add(new BarEntry(2f, 20f));
entries.add(new BarEntry(3f, 50f));
entries.add(new BarEntry(4f, 10f));

BarDataSet dataSet = new BarDataSet(entries, "Label"); 
BarData data = new BarData(dataSet);
 
BarChart chart = findViewById(R.id.bar_chart);
chart.setData(data);
chart.setFitBars(true);
chart.getDescription().setEnabled(false);
chart.getXAxis().setEnabled(false);
chart.getAxisLeft().setDrawGridLines(false);
chart.getAxisRight().setDrawGridLines(false);
chart.getAxisLeft().setDrawLabels(false);
chart.getAxisRight().setDrawLabels(false);
chart.getLegend().setEnabled(false);
chart.animateY(1000);
chart.invalidate();
总结

通过使用MPAndroidChart库,我们可以很容易地在Android中创建条形图。在配置条形图时,可以根据需要调整各种不同的选项来满足我们的需求。