安卓 MPAndroidChart 饼状图
简介
MPAndroidChart 是一个开源的安卓图表库,提供了丰富的图表类型和自定义选项,能够方便地在安卓应用中展示各种图表。其中,饼状图是一种常用的图表类型,用于展示数据的占比关系。
本文将介绍如何使用 MPAndroidChart 库在安卓应用中绘制饼状图,并提供代码示例和详细说明。在开始之前,确保已经在项目中添加了 MPAndroidChart 的依赖。
绘制饼状图
首先,在 XML 布局文件中添加一个 PieChart
控件:
<com.github.mikephil.charting.charts.PieChart
android:id="@+id/pieChart"
android:layout_width="match_parent"
android:layout_height="match_parent" />
然后,在代码中获取该控件的引用,并进行相应的配置和数据设置:
PieChart pieChart = findViewById(R.id.pieChart);
配置
可以使用 set...
方法对饼状图进行配置,以下是一些常用的配置选项:
方法 | 描述 |
---|---|
setUsePercentValues(boolean) | 是否显示百分比 |
setDescription(Description) | 设置描述文本 |
setDrawHoleEnabled(boolean) | 是否绘制中间的空洞 |
setHoleColor(int) | 设置中间空洞的颜色 |
setTransparentCircleColor(int) | 设置透明圆的颜色 |
setTransparentCircleAlpha(int) | 设置透明圆的透明度 |
setTransparentCircleRadius(float) | 设置透明圆的半径 |
setDrawCenterText(boolean) | 是否绘制中间的文字 |
setCenterText(String) | 设置中间文字 |
setCenterTextRadiusPercent(float) | 设置中间文字的半径占饼状图半径的百分比 |
setCenterTextSize(float) | 设置中间文字的大小 |
setDrawEntryLabels(boolean) | 是否绘制每个扇形区域的标签 |
setEntryLabelColor(int) | 设置标签的颜色 |
setEntryLabelTextSize(float) | 设置标签的大小 |
setEntryLabelTypeface(Typeface) | 设置标签的字体 |
setDrawMarkers(boolean) | 是否绘制选中扇形区域时的标记 |
setMarker(IMarker) | 设置标记 |
可以根据实际需求选择相应的配置选项进行设置。
数据设置
饼状图的数据由 PieData
和 PieDataSet
组成。PieData
代表整个饼状图的数据集合,PieDataSet
代表具体的数据集。
首先,创建一个 ArrayList<PieEntry>
对象,用于存储每个扇形区域的数值和标签:
ArrayList<PieEntry> entries = new ArrayList<>();
entries.add(new PieEntry(30, "A"));
entries.add(new PieEntry(20, "B"));
entries.add(new PieEntry(10, "C"));
entries.add(new PieEntry(40, "D"));
然后,创建一个 PieDataSet
对象,将数据集合传入,并设置一些显示样式的属性:
PieDataSet dataSet = new PieDataSet(entries, "Data");
dataSet.setColors(ColorTemplate.COLORFUL_COLORS);
dataSet.setValueTextColor(Color.WHITE);
dataSet.setValueTextSize(12f);
接下来,创建一个 PieData
对象,将 PieDataSet
对象传入:
PieData data = new PieData(dataSet);
最后,将 PieData
对象设置给 PieChart
控件:
pieChart.setData(data);
绘制
在完成配置和数据设置后,调用 pieChart.invalidate()
方法即可绘制饼状图。
pieChart.invalidate();
示例代码
下面是一个简单的示例代码,演示了如何使用 MPAndroidChart 在安卓应用中绘制饼状图:
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Color;
import android.os.Bundle;
import com.github.mikephil.charting.charts.P