素材巴巴 > 程序开发 >

关于使用MPAdroidChart插件制作饼状图

程序开发 2023-09-03 14:58:24

在我们基于android studio 制作的应用程序中,有许多对于数据的统计分析以及以图表的方式多样化呈现数据类型等,今天便来讨论一下关于使用MPAdroidChart插件制作饼状图。网上有类似的教程,但我细细查阅了许多教程之后发现,好像都不怎么完整。。。
下面开始:
首先加入插件的jar包,有两种方式,第一种是区网上直接下载相关的jar包,解压至目录下即可,有点麻烦,因为android studio本身便提供下载。也就是这里说的第二种方法:即在build.gradle(project)中添加allprojects {
repositories {
google()
jcenter()
maven { url “https://jitpack.io” }
}
}
只需加最后一句,其他本来就有。。
之后在build.gradle(app)中的dependencies中添加如下代码:
implementation ‘com.github.PhilJay:MPAndroidChart:v3.0.3’
这里需要注意两个问题,1.因为各位android studio的版本号不同导致关键词会有不同,总之在较新的版本中关键词都是implementation,2.引入的MPAndroidChart的版本号,我一开始引入的v3.0.0版本,却在后面制作饼状图的过程中发现无法使用Description类,改为了v3.0.3后解决此问题。

注意:
每次在build.gradle添加一条语句后上方会自动弹出sync now,并且说你现在的工程与之前的不同了,点击sync now android studio会自动下载对应的插件,我没有下载失败过,但如果失败了应该就需要重新sync吧

在做完上述的过程后,就做完了基本的准备工作;
下面是关于饼状图的制作,首先在布局文件中定义饼状图图形:
android:id="@+id/pc"
android:layout_width=“match_parent”
android:layout_height=“match_parent”/>

这时preview显示的视图中心会提示no chart data available这很正常,因为还没有添加饼图信息,之后需要在对应的activity文件中定义:private PieChart pc;此时报红(报错),将鼠标移至报错位置点击并同时按alt加enter,系统会帮你自动引入相应的库,

之后就是添加id获取,pc = (PieChart) findViewById(R.id.pc);

再之后就是设置饼图参数:
List yVals = new ArrayList<>();
yVals.add(new PieEntry(28.6f, “有参考”));
yVals.add(new PieEntry(71.3f, “无参考”));

List colors = new ArrayList<>();
colors.add(Color.parseColor("#4A92FC"));
colors.add(Color.parseColor("#ee6e55"));

PieDataSet pieDataSet = new PieDataSet(yVals, “”);
pieDataSet.setColors(colors);
PieData pieData = new PieData(pieDataSet);

pc.setData(pieData);
中间一遇到报红就重复上述操作,alt+enter,这还是很好用的省的自己去找对应库。但保险起见我还是把需要用到的库加上,如下:
package com.example.msipc.bbbb;

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.github.mikephil.charting.charts.PieChart;
import com.github.mikephil.charting.data.PieData;
import com.github.mikephil.charting.data.PieDataSet;
import com.github.mikephil.charting.data.PieEntry;

import java.util.ArrayList;
import java.util.List;

不过如果不添加Description类并初始化赋值就会发现饼图右下角会有一行不太起眼的小字:Description label,这是因为代码中有一行PieDataSet pieDataSet = new PieDataSet(yVals, “”);要解决这个问题就可以增加Description的相关函数去初始化那行字,也可以改成空,这样就等同于不显示。更改颜色和更改字体以及更改百分比这些琐碎的还是轮到大家自己去发现,但说到百分比,这里提供的百分比仅为百分比前的数据,并不包含百分号,所以,如果要加上百分号,可以添加在类别之后。

饼状图数据既可以自己赋值,也可以自己创建数据库添加,读取数据并显示。因为编译器的原因,如果要直接求百分比可能会存在精度的问题,即显示很多位,可以通过math方法解决。

下面是部分截图:

在这里插入图片描述
ok差不多就是这样了,不喜勿喷,学生个人见解,谢谢,有问题大家多去问问百度。


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。