MPAndroidChart开源图表库(一)之饼状图

首先感谢网上大神们分享MPAndroidChart的代码及实际问题的解决方式。

下面分享的代码是本人在开发过程中用到的属性及解释,有个别属性是在网上找了好久也没找到,希望分享出来对大家有帮助。

贴代码:

/**

* 设置饼图样式

*

*@parampieChart

*@parampieValues

*@paramtitle

*@paramshowLegend是否显示图例

*/

public static voidsetPieChart(PieChart pieChart,Map pieValues,String title, booleanshowLegend) {

pieChart.setUsePercentValues(true);//设置使用百分比

pieChart.getDescription().setEnabled(false);//设置描述

pieChart.setExtraOffsets(15f,5f,15f,5f);//饼图左上右下边距

pieChart.setCenterText(title);//设置环中的文字

pieChart.setCenterTextSize(6f);//设置环中文字的大小

pieChart.setDrawCenterText(false);//不设置绘制环中文字

pieChart.setRotationAngle(120f);//设置旋转角度

pieChart.setDrawHoleEnabled(false);//是否设置中间的圆环

//图例设置

Legend legend = pieChart.getLegend();

if(showLegend) {

legend.setEnabled(true);

legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);

legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);

legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);

legend.setDrawInside(false);

legend.setDirection(Legend.LegendDirection.LEFT_TO_RIGHT);

legend.setTextSize(8f);

legend.setYOffset(10f);//下边距

legend.setTextColor(R.color.black_light);

legend.setXEntrySpace(2f);

legend.setYEntrySpace(2f);

}else{

legend.setEnabled(false);

}

//设置饼图数据

setPieChartData(pieChart,pieValues);

pieChart.animateX(1500,Easing.EasingOption.EaseInOutQuad);//数据显示动画

}

/**

* 设置饼图数据源

*/

private static voidsetPieChartData(PieChart pieChart,Map pieValues) {

ArrayList entries =newArrayList<>();

Set set = pieValues.entrySet();

Iterator it = set.iterator();

while(it.hasNext()) {

Map.Entry entry = (Map.Entry) it.next();

entries.add(newPieEntry(Float.valueOf(entry.getValue().toString()),entry.getKey().toString()));

}

PieDataSet dataSet =newPieDataSet(entries,"");

dataSet.setSliceSpace(1f);//设置饼块之间的间隔

dataSet.setSelectionShift(5f);//设置饼块选中时偏离饼图中心的距离

dataSet.setColors(PIE_COLORS);//设置饼块的颜色

dataSet.setValueLinePart1OffsetPercentage(80f);//数据连接线距图形片内部边界的距离,为百分数

dataSet.setValueLinePart1Length(0.55f);//水平方向线的长度

dataSet.setValueLinePart2Length(0.5f);//线的长度

dataSet.setValueLineColor(Color.RED);//设置连接线的颜色

dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);//饼图数据在外面

PieData pieData =newPieData(dataSet);

pieData.setValueFormatter(newPercentFormatter());//追加%号

pieData.setValueTextSize(8f);//比例字体大小

pieData.setValueTextColor(Color.RED);//比例颜色

pieData.setDrawValues(true);//百分比及连线是否显示

pieChart.setData(pieData);

pieChart.setEntryLabelTextSize(10f);//饼块文字描述

pieChart.setEntryLabelColor(Color.RED);//饼块文字颜色

pieChart.highlightValues(null);

pieChart.invalidate();//刷新

}

你可能感兴趣的:(MPAndroidChart开源图表库(一)之饼状图)