MPAndroidChart 是 Android 系统上一款开源的图表库。目前提供线图和饼图,支持选择、缩放和拖放。相比于achartengine提供了更多的功能,更绚丽的界面,性能也更好。
一下是关于MPAndroidChart画饼图的一些属性设置:
mChart = (PieChart)findViewById(R.id.chart1);
// change the color of the center-hole
// 设置中间圆盘的颜色
mChart.setHoleColor(Color.rgb(235, 235, 235));
Typeface tf = Typeface.createFromAsset(getAssets(), "OpenSans-Regular.ttf");
// 设置圆盘百分比的字体
mChart.setValueTypeface(tf);
// 设置周围字体颜色
// mChart.setValueTextColor(Color.BLACK);
// 设置周围文字大小
// mChart.setValueTextSize(size);
// 设置圆盘中间区域的字体
mChart.setCenterTextTypeface(Typeface.createFromAsset(getAssets(), "OpenSans-Light.ttf"));
// 设置圆盘中间区域大小
mChart.setHoleRadius(60f);
// 设置中间透明圈的大小
mChart.setTransparentCircleRadius(60f);
// 饼图又下角的说明文字
mChart.setDescription("这是一个饼图");
// 饼图右下角说明文字大小
// mChart.setDescriptionTextSize(7);
// 是否显示圆盘中间文字 默认显示
mChart.setDrawCenterText(true);
// 设置是否显示饼图中心的空白区 默认显示
mChart.setDrawHoleEnabled(true);
mChart.setRotationAngle(0);
// draws the corresponding description value into the slice
// 是否显示x-value的文字
mChart.setDrawXValues(true);
// 是否显示y-value的文字
mChart.setDrawYValues(true);
// enable rotation of the chart by touch
// 圆盘是否可转动
mChart.setRotationEnabled(true);
// display percentage values
// 是否使用百分比
mChart.setUsePercentValues(true);
// 一起使用
// 单位
// mChart.setUnit(" g");
// 设置是否使用单位 默认false
// mChart.setDrawUnitsInChart(true);
// add a selection listener
// 设置一个选中监听
mChart.setOnChartValueSelectedListener(this);
// 设置是否接收点击事件
// mChart.setTouchEnabled(false);
// 设置中间的文字
mChart.setCenterText("MPAndroidChart\nLibrary");
// 设置圆盘中间文字大小
// mChart.setCenterTextSize(size);
// 设置动画
mChart.animateXY(1500, 1500);
// mChart.spin(2000, 0, 360);
// 设置饼图说明
Legend l = mChart.getLegend();
l.setPosition(LegendPosition.RIGHT_OF_CHART);
l.setXEntrySpace(7f);
l.setYEntrySpace(5f);
// 设置是否显示图表说明
// mChart.setDrawLegend(false);
//设置X轴动画
mChart.animateX(1800);
//设置y轴动画
mChart.animateY(1800);
//设置xy轴一起的动画
mChart.animateXY(1800, 1800);
//设置饼图XY轴上的数据
ArrayList<Entry> yVals1 = new ArrayList<Entry>();
for (int i = 0; i < count + 1; i++)
{
yVals1.add(new Entry((float)(Math.random() * mult) + mult / 5, i));
}
ArrayList<String> xVals = new ArrayList<String>();
for (int i = 0; i < count + 1; i++)
{
xVals.add(mParties[i % mParties.length]);
}
PieDataSet set1 = new PieDataSet(yVals1, "Election Results");
set1.setSliceSpace(3f);
// int colors[] = {Color.RED,Color.BLUE,Color.BLACK};
// 设置饼图每个区域的颜色
set1.setColors(ColorTemplate.VORDIPLOM_COLORS);
PieData data = new PieData(xVals, set1);
mChart.setData(data);
// undo all highlights
mChart.highlightValues(null);
mChart.invalidate();
以上有表达不清楚或者错误的地方还请大家提出来,谢谢!!!