AChartEngine应用之LineChart(模拟动态生命特征值图)

本文介绍了如何使用AChartEngine库在Android上创建动态LineChart,模拟生命特征值的变化。通过设置XYMultipleSeriesRenderer,构建数据源,生成曲线图,并使用定时器任务更新数据,以展示分钟脉搏等生命特征值的动态走向。示例代码展示了如何通过Handler和Task在主线程中更新UI。项目可作为医疗设备显示生命症状的参考。
摘要由CSDN通过智能技术生成

AChartEngine应用之LineChart(模拟动态生命特征值图)

接着上一次写的内容,构建动态曲线图,并产生与用户交互,考虑到数据都是活动的,不可能总是用静态数据,所以我下面的demo就是模拟。项目作用:模拟生命特征值图,动态显示分钟脉搏生命特征值走向每隔1000ms产生50组数据,并填充到表格中,主要使用的到是Handler+Task,因为我是用Activity显示这个表格每次产生的数据都需要快速的填充到主线程UI中,所以我就用Handler,这里的数据我都是采用随机数表示,这个demo可以作为开发医疗设备显示生命症状的表格信息参考,实际项目中如果需要用的每隔XX时间产生XX数据,最好是用Web提供数据,这样可以实现多个客户端 共享数据

构建LineChart图的步骤主要分为以下四步,还需要在项目中引入AChartEngine依赖jar包,在Manifest中添加:<activityandroid:name="org.achartengine.GraphicalActivity" />

1.     设置XYMultipleSeriesRenderer

mXYRenderer = buildRenderer(color, style, true);

                   mXYRenderer.setShowGrid(true);// 显示表格

                   mXYRenderer.setGridColor(Color.GREEN);// 据说绿色代表健康色调,不过我比较喜欢灰色

                   mXYRenderer.setXLabels(20);

                   mXYRenderer.setYLabels(10);

                   mXYRenderer.setYLabelsAlign(Align.RIGHT);// 右对齐

                   // mXYRenderer.setPointSize((float) 2);

                   mXYRenderer.setShowLegend(false);// 不显示图例

                   mXYRenderer.setZoomEnabled(false);

                   mXYRenderer.setPanEnabled(true, false);

                   mXYRenderer.setClickEnabled(false);

                   setChartSettings(mXYRenderer, title, "时间", "数量", 0, X, 0, Y,

                                     Color.WHITE, Color.WHITE);// 这个是采用官方APIdemo提供给的方法

                                                                                                       // 设置好图表的样式

 

2.     构建数据源CategorySeries

series = new XYSeries(title);// 这个类用来放置曲线上的所有点,是一个点的集合,根据这些点画出曲线

mDataset = new XYMultipleSeriesDataset(); // 创建一个数据集的实例,这个数据集将被用来创建图表

mDataset.removeSeries(series);// 移除数据集中旧的点集

                   series.clear();// 点集先清空,为了做成新的点集而准备

 

                   for (int k = 0; k < X; k++) {// 实际项目中这些数据最好是由线程搞定,可以从WebService中获取

                            int y = (int) (Math.random() * Y);

                            series.add(k, y);

                   }

                   mDataset.addSeries(series);// 在数据集中添加新的点集

                   mViewChart.invalidate();// 视图更新,没有这一步,曲线不会呈现动态

 

3.     通过ChartFactory.getLineChartView生成曲线图

mViewChart = ChartFactory.getLineChartView(context, mDataset,

                                     mXYRenderer);// 通过ChartFactory生成图表

 

                   mLayout.addView(mViewChart, new LayoutParams(LayoutParams.FILL_PARENT,

                      

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值