这里主要说的是hellocharts框架
最新的开源项目地址 https://github.com/lecho/hellocharts-android/releases
1.自己做的一个折线图
项目的源码http://www.oschina.net/code/snippet_2702417_56390
其中的一些主要代码的注解
(1)
Axis axisX = new Axis(axisValues); // X轴,axisValues自己传入的x轴上的坐标
data.setAxisXBottom(axisX);
chartView.setLineChartData(data);
// chartView.setViewportCalculationEnabled(false);
//设置了当前的视图的 范围(y轴是整个范围,x轴为1/3的视图,所以此时能够在x轴方向上滑动)
chartView.getChartComputator().setCurrentViewport(0, maxTop, numberOfPoints/3, -6);
(2)
Axis axisY = new Axis().setHasLines(true);// 添加y轴的线
//自定义的坐标显示的格式,这里就是横坐标的数值之后加上".0%"字样
axisY.setFormatter(new SimpleValueFormatter(0, true, new char[] { 1, 2, 3 }, new char[] { '.','0','%' }));
data.setAxisYLeft(axisY);
//data.setBaseValue(Float.NEGATIVE_INFINITY);
resetViewportY(chartView);
饼图每个模块的点击监听
//饼图的点击监听
piechartView.setOnValueTouchListener(new PieChartOnValueTouchListener() {
@Override
public void onValueTouched(int paramInt, ArcValue paramArcValue) {
// TODO Auto-generated method stub
paramArcValue.getValue();//这个模块所占的百分比
}
@Override
public void onNothingTouched() {
// TODO Auto-generated method stub
}
});
(4)//让坐标轴以自定义的跨度自增长,并且实现格式化,如本例中显示的格式 “-3.5%”
List<AxisValue> values = new ArrayList<AxisValue>();
for( Float i = -3.5f; i < 4.0f; i+= 0.5f){//以0.5的跨度增长
AxisValue value = new AxisValue(i,(i.toString()+"%").toCharArray());
values.add(value);
}
//自定义y轴坐标
axisY.setValues(values);
axisY.setMaxLabelChars(5);
//坐标轴
Axis axisX = new Axis(); //X轴
axisX.setHasTiltedLabels(true); //X坐标轴字体是斜的显示还是直的,true是斜的显示
axisX.setTextColor(Color.WHITE); //设置字体颜色
//axisX.setName("date"); //表格名称
axisX.setTextSize(10);//设置字体大小
axisX.setMaxLabelChars(8); //最多几个X轴坐标,意思就是你的缩放让X轴上数据的个数7<=x<=mAxisXValues.length
axisX.setValues(mAxisXValues); //填充X轴的坐标名称
data.setAxisXBottom(axisX); //x 轴在底部
//data.setAxisXTop(axisX); //x 轴在顶部
axisX.setHasLines(true); //x 轴分割线
// Y轴是根据数据的大小自动设置Y轴上限(在下面我会给出固定Y轴数据个数的解决方案)
Axis axisY = new Axis(); //Y轴
axisY.setName("");//y轴标注
axisY.setTextSize(10);//设置字体大小
data.setAxisYLeft(axisY); //Y轴设置在左边
//data.setAxisYRight(axisY); //y轴设置在右边
//设置行为属性,支持缩放、滑动以及平移
lineChart.setInteractive(true);
lineChart.setZoomType(ZoomType.HORIZONTAL);
lineChart.setMaxZoom((float) 2);//最大方法比例
lineChart.setContainerScrollEnabled(true, ContainerScrollType.HORIZONTAL);
(6)其他的具体的学习还是看源码,你都是会看懂的
这里更为直观的看下(1)
(1)的另一种实现
axisX.setFormatter(new SimpleValueFormatter(0, false, null, ":00".toCharArray()));
其他的图表的框架
Android-Charts
国人实现的图表控件 https://github.com/limccn/Android-Charts
国人实现的图表控件 https://github.com/limccn/Android-Charts
MPAndroidChart
非常不错的图表工具。https://github.com/PhilJay/MPAndroidChart
非常不错的图表工具。https://github.com/PhilJay/MPAndroidChart
其他的图表的框架
Android-Charts
国人实现的图表控件 https://github.com/limccn/Android-Charts
国人实现的图表控件 https://github.com/limccn/Android-Charts
MPAndroidChart
非常不错的图表工具。https://github.com/PhilJay/MPAndroidChart
非常不错的图表工具。https://github.com/PhilJay/MPAndroidChart