黑马程序员技术交流社区

标题: android开源图表库MPAndroidChart(曲线图、直方图、饼状图) [打印本页]

作者: Android_Robot    时间: 2016-11-15 14:06
标题: android开源图表库MPAndroidChart(曲线图、直方图、饼状图)
            Android开源图表库MPAndroidChart(曲线图、直方图、饼状图)                    
潮流新技术、新框架
  

一个可以拖动缩放的图表库,包含曲线图、直方图、饼状图,其中直方图支持3d效果。
该库的可扩展性强,代码相对规范,最近一次更新有很大改进,如果不喜欢AChartEngine的过于复杂可以考虑在此库的基础上开发自己的图表类。


linechart
填充式lineChart
单条线的LineChart
BarChart2D



BarChart3D
PieChart


ScatterChart


以piechart为例介绍使用方法:


xml中

[Java] 纯文本查看 复制代码

<com.github.mikephil.charting.charts.PieChart
  android:id="@+id/spread_pie_chart"
  android:layout_width="match_parent"
  android:layout_height="320dip" />


activity中

初始化
[Java] 纯文本查看 复制代码

ColorTemplate mCt;
mCt = new ColorTemplate();
mCt.addDataSetColors(ColorTemplate.PASTEL_COLORS, this);
mChart = (PieChart) headView.findViewById(R.id.spread_pie_chart);
mChart.setColorTemplate(mCt);
mChart.setDescription("");
mChart.setHoleRadius(30f);
mChart.setTransparentCircleRadius(0f);
mChart.setCenterTextSize(18f);
mChart.setDrawXValues(true);
mChart.setUsePercentValues(true);
mChart.setDrawLegend(false);
// space between slices
mChart.setSliceSpace(1f);
mChart.setDrawHoleEnabled(false);
mChart.setTouchEnabled(false);


数据

[Java] 纯文本查看 复制代码

ArrayList<Entry> yVals = new ArrayList<Entry>();
ArrayList<String> xVals = new ArrayList<String>();
for (int i = 0; i < listDatas.size(); i++) {
    yVals.add(new Entry((float)listDatas.get(i).getProvinceCount(), i));
    xVals.add(listDatas.get(i).getProvinceName());
}
DataSet set1 = new DataSet(yVals, "Content");
ArrayList<DataSet> dataSets = new ArrayList<DataSet>();
dataSets.add(set1);
ChartData data = new ChartData(xVals, dataSets);
mChart.setData(data);


其中listData为自己项目中的数据源。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2