AChartEngine图标库之动态柱状图
来源:互联网 发布:王者荣耀钓鱼源码 编辑:程序博客网 时间:2024/06/08 01:59
效果图
核心代码:
1 设置点集
<span style="font-size:18px;"> //设置点集 private XYMultipleSeriesDataset getDataset() { mDataset = new XYMultipleSeriesDataset(); series = new XYSeries("柱状图"); mDataset.addSeries(series); return mDataset; }</span>
2 设置描绘器
<span style="font-size:18px;">private XYMultipleSeriesRenderer getRender() { mRender = new XYMultipleSeriesRenderer(); setRenderer(mRender, color); setChartSettings(mRender, title, xMessage, yMessage, yMin, yMax); mRender.setXLabels(0);//取消X轴数据,自定义显示 mRender.setYLabels(10);//Y轴10等分 mRender.setClickEnabled(true);//不允许点击事件 mRender.setPanEnabled(false, false);//不允许移动 mRender.setShowGrid(true);//显示表格 mRender.setBarSpacing(0.5f);//设置表格的宽度,柱子的宽度也会有所变化 return mRender; }</span>
3 构建图表
mChartView = ChartFactory.getBarChartView(context, getDataset(), getRender(), BarChart.Type.DEFAULT);
4 计时器定时刷新
private void sendMessage() { handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 1) { updateChart(); } super.handleMessage(msg); } }; task = new TimerTask() { @Override public void run() { Message message = new Message(); message.what = 1; handler.sendMessage(message); } }; timer.schedule(task, 0, 1000); }
5 刷新
private void updateChart() { //随机数模拟数据 int data = (int) (Math.random() * 100); //x轴显示当前时间(仅仅显示分,秒) String xDate = nowTime.format(new java.util.Date()); //得到x轴上柱子的数量 int lenght = series.getItemCount(); //此处显示柱子显示的最大数量 if (lenght > xLengh) { lenght = xLengh; } //移除点集 mDataset.removeSeries(series); //x轴当前点数小于最大点数则直接添加,否则先移除旧点,再添加新点,并转换坐标实现移动效果 if (lenght < xLengh) { series.add(lenght + 1, data); mRender.addXTextLabel(lenght + 1, xDate); xKedu[lenght] = xDate; } else { for (int i = 0; i < lenght - 1; i++) { catchs[i] = (float) (series.getY(i + 1)); xKedu[i] = xKedu[i + 1]; } series.clear(); for (int i = 0; i < lenght - 1; i++) { series.add(i + 1, catchs[i]); mRender.addXTextLabel(i + 1, xKedu[i]); } xKedu[xLengh - 1] = xDate; series.add(xLengh, data); mRender.addXTextLabel(xLengh, xDate); } mDataset.addSeries(series); //这里实现图表的移动效果 mChartView.invalidate(); }
源码地址:
http://download.csdn.net/detail/huiling815/9653478
0 0
- AChartEngine图标库之动态柱状图
- AChartEngine图标库之动态饼图
- Achartengine.jar绘制动态图形二 --柱状图
- Google开源图标库之achartengine源码分析--第一节
- Google开源图标库之achartengine源码分析--第二节
- AChartEngine之动态折线图
- 使用AChartEngine画柱状图
- 使用AChartEngine画柱状图
- AchartEngine 画柱状图
- Android AChartEngine画柱状图
- android Achartengine绘制柱状图
- AChartEngine中柱状图
- achartengine 绘制柱状图
- AChartEngine应用之BarChart(动态柱形图)
- AChartEngine应用之BarChart(动态柱形图)
- [Android]使用AChartEngine画柱状图
- [Android]使用AChartEngine画柱状图
- AchartEngine的柱状图属性设置
- 即时定位与地图构建(SLAM)的相关研究
- webrtc流程1
- ios开发App图标和启动画面尺寸
- 关于SVN 目录结构
- 【NOIP 2011 Day2 T2】聪明的质检员(二分)
- AChartEngine图标库之动态柱状图
- Eclipse新建maven项目报错:Discover and map Eclipse plugins to Maven plugin goal executions
- CUDA和OpenCL有什么区别
- JavaScript基础之继承与原型链
- java中的Integer与int
- servlet request getHeader(“x-forwarded-for”) 获取真实IP
- VS2010远程调试环境详细配置(Windows用户验证)
- 自学-ES6篇-异步操作和Async函数
- 根据时间日期 得到星期时间