开源图表库MPAndroidChart(曲线图、直方图、饼状图)
以piechart为例介绍使用方法:
xml中
- <com.github.mikephil.charting.charts.PieChart
- android:id="@+id/spread_pie_chart"
- android:layout_width="match_parent"
- android:layout_height="320dip" />
activity中
初始化
- 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);
数据
- 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为自己项目中的数据源。
注:关于图表库现在有了更好的项目hellocharts,见 http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1107/1930.html