Android图表应用分享
导读: 之前做app时就有图表开发的任务,这次做海通项目也有个饼图,所以分享下。
需要哪些准备
在gradle下引用
repositories {
maven { url “https://jitpack.io” }
}
dependencies {
compile ‘com.github.PhilJay:MPAndroidChart:v2.1.6’
}
代码讲解
界面xml端
<com.github.mikephil.charting.charts.PieChart
android:id="@+id/piechart"
android:layout_width="600px"
android:layout_height="300px"
android:layout_centerHorizontal="true"/>
后台java端(解释加在注释里了)
X轴,Y轴
ArrayList<Entry> yVals = new ArrayList<>(); //值坐标
ArrayList<String> xVals = new ArrayList<>();//对应的Lable,可以理解成X轴
for (int i = 0; i < 6; i++) {
xVals.add("");
yVals.add(new BarEntry(listSize.get(i), i));
}
数据集
PieDataSet pieDataSet = new PieDataSet(yVals, "资产总数");//创建饼图的一个数据集
饼图每个模块的颜色
int[] COLORFUL_COLORS = {
ContextCompat.getColor(getActivity(), R.color.colorChartBlue), ContextCompat.getColor(getActivity(), R.color.colorChartYellow),
ContextCompat.getColor(getActivity(), R.color.colorChartBlue_1), ContextCompat.getColor(getActivity(), R.color.colorChartPurple),
ContextCompat.getColor(getActivity(), R.color.colorChartRed), ContextCompat.getColor(getActivity(), R.color.colorChartGray)};
pieDataSet.setColors(COLORFUL_COLORS); //设置成丰富多彩的颜色
点击饼图部分时动画
pieDataSet.setSelectionShift(0);//点击后延伸出来的长度
把x轴y轴数据填充到饼图
PieData piedata = new PieData(xVals, pieDataSet);//生成PieData
piedata.setDrawValues(false);
piechart.setData(piedata);//给PieChart填充数据
设置图标图例(这边不需要图例所以false)
piechart.getLegend().setEnabled(false);
设置相关文字
piechart.setCenterText("资产总数");//中间写的文字
piechart.setCenterTextColor(ContextCompat.getColor(getActivity(), R.color.tv_333));//设置中间文字的颜色
piechart.setCenterTextRadiusPercent(0.5f);//设置文字显示的角度,180横着,默认是竖着
piechart.setCenterTextSize(12f);//设置中心文字的字体大小
piechart.setCenterTextTypeface(null);//设置字体
piechart.setDrawCenterText(true);//中心字使能开关,false时中间无法显示文字
piechart.setDrawHoleEnabled(true);//基本同上
piechart.setHoleColor(ContextCompat.getColor(getActivity(), R.color.colorWhite));
piechart.setHoleRadius(60f);
piechart.setDescription("");//设置描述文字
加载时的动画
piechart.animateXY(1000, 1000);
小结
通过饼图可以知道其他的柱状图,折线图等,大同小异
主要抓住X轴的数据集,Y轴的数据集,图表的数据集,图例,文字,图表的数据集