实现MPAndroidChart柱状图上显示值和百分比

1. 流程图

flowchart TD
    A(开始) --> B(引入MPAndroidChart库)
    B --> C(创建BarChart对象)
    C --> D(设置BarChart属性)
    D --> E(设置数据)
    E --> F(设置值和百分比显示)
    F --> G(结束)

2. 步骤及代码示例

步骤一:引入MPAndroidChart库

首先,在项目的 build.gradle 文件中添加以下依赖:

implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'

步骤二:创建BarChart对象

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

<com.github.mikephil.charting.charts.BarChart
    android:id="@+id/barChart"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

在代码中初始化 BarChart 对象:

BarChart barChart = findViewById(R.id.barChart);

步骤三:设置BarChart属性

设置 BarChart 的一些基本属性,比如是否可缩放、是否显示边框等:

barChart.setPinchZoom(true);
barChart.setDrawBorders(true);

步骤四:设置数据

创建一个 BarData 对象,并添加数据集合:

ArrayList<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry(0, 30));
entries.add(new BarEntry(1, 60));
entries.add(new BarEntry(2, 90));

BarDataSet dataSet = new BarDataSet(entries, "Values");
BarData data = new BarData(dataSet);

barChart.setData(data);

步骤五:设置值和百分比显示

通过自定义 ValueFormatter 类来设置值和百分比的显示:

public class MyValueFormatter extends ValueFormatter {
    @Override
    public String getBarLabel(BarEntry barEntry) {
        return barEntry.getY() + " (" + (int) (barEntry.getY() / 180 * 100) + "%)";
    }
}

dataSet.setValueFormatter(new MyValueFormatter());

3. 类图

classDiagram
    class BarChart {
        - PinchZoom
        - DrawBorders
        + setData()
    }
    class BarData {
        + BarData()
    }
    class BarDataSet {
        - entries
        + BarDataSet()
    }
    class ValueFormatter {
        + getBarLabel()
    }

通过以上步骤,你可以实现在 MPAndroidChart 的柱状图上显示值和百分比。希望对你有所帮助,如果有任何问题,欢迎随时向我提问!