先吐槽下csdn搜到的动态折线图,几乎全都是先一次性加载完数据,然后一点点绘制,比如有个动态心电图,有个动态气温,真的忍不住想问你们既然已经知道了所有数据,又何必动态加载呢?
时隔半年,终于把代码贴上来了。后来我又发现了MPChart的动态图更好画,但是不如helloChart好看,并且性能更好。但是始终还有一个问题没解决,helloChart刷新过程中不支持手势放大缩小,所以我也试过用+-两个按钮改变试图范围,但是不如手势方便。
正文:现在的代码只需要三个操作。
1.调一个构造方法,传入参数
2.不断的加入新数据
3.销毁这个对象
是不是非常简单好用,如果你有什么定制的需求,欢迎在我的代码上进行修改,如果有不清楚的评论就好了
public class MyLineChart {
private LineChartView lineChartView;
private int lineNum = 1;
private int MAX_VIEW_POINT_COUNT = 100;
private int period = 20;
private int[] colors = {Color.RED, Color.BLACK, Color.BLUE, Color.YELLOW, Color.GREEN};
private OnChartValueSelectListener listener;
private List<LinkedList<PointValue>> points;
private List<Line> lines;
private LineChartData lineChartData;
private float[] dataSize;
public MyLineChart(LineChartView lineChartView, int lineNum, int MAX_VIEW_POINT_COUNT, int period, OnChartValueSelectListener listener, int... colors){
this.lineChartView = lineChartView;
if (lineNum > 1){
this.lineNum = lineNum;
}
if (MAX_VIEW_POINT_COUNT > 0){
this.MAX_VIEW_POINT_COUNT = MAX_VIEW_POINT_COUNT;
}
if (period > 20){
this.period = perio