AChartEngine
来源:互联网 发布:php is_string 编辑:程序博客网 时间:2024/06/05 16:15
AChartEngine简单使用
- AChartEngine简单使用
- 项目来源
- 下载 AChartEnginejar
- 导入jar包
- 项目思路
- AChartEngine简单使用
项目来源
现在有个需求在一个Activity内绘制一个折线图,要求要用AChartEngine来做,用完之后突然发现,Excel真的好强大。跑远了,是AChartEngine。好了,言归正传,首先,导入JAR包,别问我为什么还不用Android Studio,因为我也不知道。
下载 AChartEngine.jar
这里提供一个下载链接,这里是官方网站。出门右转,不谢
导入jar包
- 将jar包复制到libs下,然后在jar包上右键Build Path—>Add to Build path
项目思路
- 新建一个Activity,然后在Activity中构建一个AchartEngine图表
将AchartEngine图表添加到Activity中
- 获取一个图表渲染(XYMultipleSeriesRenderer)实例
- 获取一个折现渲染(XYSeriesRenderer )实例
- 获取一个数据放置实例
实现AchartEngine图表的动态刷新
获取图表渲染实例,其中包括了折现渲染
public XYMultipleSeriesRenderer getRefender() { seriesRenderer = new XYMultipleSeriesRenderer(); seriesRenderer.setChartTitleTextSize(20); seriesRenderer.setApplyBackgroundColor(true); seriesRenderer.setLabelsColor(0xFF85848D); seriesRenderer.setZoomButtonsVisible(false); seriesRenderer.setZoomEnabled(false); seriesRenderer.setZoomInLimitX(7); seriesRenderer.setPanEnabled(true); seriesRenderer.setLabelsTextSize(14); seriesRenderer.setXLabelsAlign(Align.CENTER); seriesRenderer.setYLabelsAlign(Align.LEFT); seriesRenderer.setAxisTitleTextSize(16); seriesRenderer.setXTitle("Y"); seriesRenderer.setYTitle("Y"); seriesRenderer.setXLabels(10); seriesRenderer.setYLabels(10); seriesRenderer.setXAxisMin(1); seriesRenderer.setXAxisMax(20); seriesRenderer.setYAxisMin(0); seriesRenderer.setYAxisMax(100); seriesRenderer.setMarginsColor(Color.WHITE); seriesRenderer.setClickEnabled(false); seriesRenderer.setChartTitle("Demo"); XYSeriesRenderer xySeriesRenderer1 = new XYSeriesRenderer(); xySeriesRenderer1.setPointStyle(PointStyle.CIRCLE); xySeriesRenderer1.setPointStrokeWidth(3); xySeriesRenderer1.setColor(0xFFF46C48); xySeriesRenderer1.setDisplayChartValues(false); xySeriesRenderer1.setChartValuesTextSize(12); seriesRenderer.addSeriesRenderer(xySeriesRenderer1); return seriesRenderer; }
获取数据放置实例,产生初始值
public void geDataSet() { seriesDataset = new XYMultipleSeriesDataset(); series = new XYSeries("Demo 1"); series.add(1, 36); series.add(2, 30); series.add(3, 27); series.add(4, 29); series.add(5, 34); series.add(6, 28); series.add(7, 33); series.add(8, 59); seriesDataset.addSeries(series); }
生成折现图视图
public GraphicalView getGraphicalView() { chartView = ChartFactory.getLineChartView(mContext, seriesDataset, seriesRenderer); return chartView; }
动态画图
public void updateChart(int x, int y) { int location=-7; series.add(x, y); chartView.invalidate(); chartView.repaint(); }
将以上的这些方法,放在一个单独的类中,然后在MainActivity中对这个类进行实例化操作,并调用其中的方法,以此来获得图表视图(GraphicalView )并将其放置在一个布局中。
MainActivity
1. 通过findViewById获取布局的Id;
2. 自定义类的实例化;
3. 通过实例化对象获取GraphicalView
4. 将 GraphicalView 添加到布局中
5. 通过 Handler 来进行动态刷新 GraphicalView
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); drawLayout = (RelativeLayout) findViewById(R.id.drawlay); myChart = new MYChart(this); myChart.geDataSet(); myChart.getRefender(); chartView = myChart.getGraphicalView(); drawLayout.addView(chartView); handler.sendEmptyMessage(1); }
通过Handler 消息发送机制,构成消息循环发送从而进行不断的刷新折线图
Handler handler = new Handler() { public void dispatchMessage(android.os.Message msg) { switch (msg.what) { case 1: myChart.updateChart(time, new Random().nextInt(100)); time += 1; handler.sendEmptyMessage(2); break; case 2: handler.sendEmptyMessageDelayed(1, 2000); break; default: break; } }; };
整体项目在这里
0 0
- AChartEngine
- AchartEngine
- achartengine
- AChartEngine
- achartengine.achartengine
- AChartEngine学习
- 关于AChartEngine
- AChartEngine简介
- AChartEngine简介
- 简单achartengine
- AChartEngine分析
- AChartEngine中散列图
- AchartEngine属性
- achartengine 属性
- AChartEngine 简介
- AChartEngine 解析
- 关于achartengine
- aChartEngine小结
- HDU4497:GCD and LCM(数论)
- 在CentOS7.3下yum安装Kubernetes1.4傻瓜教程
- 基于Nodejs的第一个小爬虫
- 二重价值的最短路
- Numpy 基础运算2
- AChartEngine
- recyclerview中有edittext的处理
- qq1455018613
- IO流_复制单级文件夹案例
- 43200005
- iOS中简单易懂秒杀倒计时/倒计时
- 用堆排序实现大致已经排好序的序列
- Eclipse复制或修改项目后,把项目部署后发现还是原来的项目名称
- 装好xampp之后修改PHP项目所在的目录