android使用AChartEngine 使用动态图


方法一:

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

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();
				}			
			});	

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

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


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

,不符合真实的数据了





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值