android使用AChartEngine 使用动态图

来源:互联网 发布:java运行原理 编辑:程序博客网 时间:2024/05/21 14:59


方法一:

其实图表的数据来源于坐标点,只需要增加坐标点,来改变一下显示坐标的范围就可以实现动态图了

getLineChartView(Context context,
        XYMultipleSeriesDataset dataset,
        XYMultipleSeriesRenderer renderer);

此方法当中的参数dataset就是你的折线图数据集合了,实际使用时是通过调用dataset.addSeries(XYSeries series)、dataset.addSeries(A线条数据集)、dataset.addSeries(B线条数据集)……这种方式添加数据的,因为addSeries中的参数series是一个引用类型的变量,所以你的series被添加进去后只要没重新实例化,那么你在图表外部操作这个series比如往里面增加一个点,还是会有效地影响到图表。

Button reload = (Button)getActivity().findViewById(R.id.reloadaj);  reload.setOnClickListener(new OnClickListener(){double i = 1;double x = 10;public void onClick(View v) {// TODO Auto-generated method stub            dataset.getSeries()[0].add(x,new Random().nextInt(27));            dataset.getSeries()[1].add(x,new Random().nextInt(27));                        //移动一下显示范围,形成动态图效果        renderer.setRange(new double[]{i,x+1, 0d, 30d});        i++;        x++;//刷新折线图view.repaint();}});

如果后台是时间加值一个一个点的数据回来,要想实现好一点的效果,好判断一下当点的数据超过显示的刻度在移动一下范围,

如果数组的点数太多了,要考虑一下把以前的点去掉,让其保持在一定的范围内,不能一直无限的增加数组的长度


上次看过一个说将旧点加一的方法来实现向右平移的效果,来模拟显示动态图是可以,但是实际中不会这么做,因为相当于改变了原来的坐标

,不符合真实的数据了





0 0
原创粉丝点击