最近项目开发需要实现一个动态变化的折线图,网上搜了一下有WilliamChart,MPChart和HelloCharts可用,有人说MPChart在studio环境中表现不错,在eclipse环境中总是报错无法集成,还有说对比之下HelloCharts性能更好、功能更完善、UI风格更美观、坐标轴更精细等等,最后选用了HelloCharts。
GitHub地址:https://github.com/lecho/hellocharts-android
CSDN地址:http://download.csdn.net/detail/wangwj650/9832535
hellocharts-library-1.5.8.jar下载:http://download.csdn.net/detail/wangwj650/9832533
HelloCharts介绍
HelloCharts支持以下chart类型:
- Line chart(cubic lines, filled lines, scattered points)
- Column chart(grouped, stacked, negative values)
- Pie chart
- Bubble chart
- Combo chart(columns/lines)
- Preview chart(for column chart and line chart)
另有以下特点:
- 支持缩放、滑动及平移;
- 支持自定义坐标轴(比如坐标轴上下左右位置颜色大小等皆可设定),支持自动生成坐标轴,轴上坐标范围可自动适应数据大小;
- 支持动画(Animations);
- 支持预览,在chart下面会有一个坐标密度更细的附属chart,当选中附属chart的某部分区域,上面的chart会显示选中区域的更详细情况,类似放大镜效果;
最终效果
具体方法
在XML中的定义
<lecho.lib.hellocharts.view.LineChartView
android:id="@+id/line_chart"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"/>
控件实例化
LineChartView lineChartView;
lineChartView = (LineChartView) findViewById(R.id.line_chart);
chart属性设置
chart.setZoomEnabled(boolean isZoomEnabled);//设置是否支持缩放
chart.setOnValueTouchListener(LineChartOnValueSelectListener touchListener);//为图表设置触摸事件
chart.setScrollEnabled(true);//设置是否可以滚动
chart.setInteractive(boolean isInteractive);//设置图表是否可以与用户互动
chart.setValueSelectionEnabled(boolean idValueSelectionEnabled);//设置图表数据是否可选中进行显示
chart.setLineChartData(LineChartData data);//为图表设置数据,数据类型为LineChartData