Achartengine画分段动态曲线

最近实验室做到的项目,需要在手机上实时显示从WIFI模块传过来的频谱数据,通过对比网上图库,最终选了achartengine,经过这两天的研究终于搞定,在此与大家分享。

频谱图的要求如下:

                 1,由于是实时数据,因此需要曲线能动态更新;

                  2,数据上传的速度不快,中间还有可能缺失,因此需要分段显示

                 3,横坐标轴是随着用户输入频率的范围的变化而变化

                

解决动态更新:使用了timeTak和handler的结合,定时扫描,定时重绘,其中update()是重回函数

                 

  handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                // 刷新图表
                updateChart();

                super.handleMessage(msg);
            }
        };

        task = new TimerTask() {
            @Override
            public void run() {
                Message message = new Message();
                message.what = 1;
                handler.sendMessage(message);
            }
        };

        timer.schedule(task, 1000, 1000);

解决分段画的画法:

       XYMultipleSeriesDataset,XYMultipleSeriesRenderer分别是画线的点集数据容器和线条的颜色渲染,查看官网API发现他们是可以存放数组的;

        分段刷新的思路:将指定的曲线取出,换成要刷新的数据,再重新添加到数据集的指定位置;

        series=mDataset.getSeriesAt(data[0] - 1);  //找到数据容器中对应的曲线,
        mDataset.removeSeries(data[0] - 1);//将该曲线移除

         series.clear();//清除数据点集,为新数据做准备

        //填入新的数据

      for (int k = 0; k < 1024; k++) {
          series.add(xv[k], yv[k]);
         }


         // 在数据集中添加新的点集
       mDataset.addSeries(data[0] - 1, series);//最后将拥有新数据的曲线凡在指定位置


最后完成刷新:chart.invalidate();


附上代码示例地址:http://download.csdn.net/detail/sangsa/9416765




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值