3

Code Demo vẽ biểu đồ Chart trong android dùng AchartEngine

Posted by chazo1994 on 06:41 in

ACHARTENGINE

Đây là code class demo vẽ đồ họa bằng achartengine
trước tiên vào đây để Download thư viện (down file jar)
trong android studio chuyển sang chế độ project copy file jar và paste vào thư mục libs
rồi chuyển về chế độ android
vào app -> build.grade (module) tìm để phần dependency{ .. } thêm dòng này vào
compile files('libs/achartengine120.jar')
 "achartengine120" sửa thành tên file jar của bạn

sau đó ấn build vậy là dùng đc thư viện achartengine rùi!!!

sau đây là class mình viết demo và có giải thích vài phần trong đó


 package com.example.thinh.designfilter.Util;  
 import android.graphics.Color;  
 import android.graphics.Paint;  
 import android.widget.LinearLayout;  
 import com.example.thinh.designfilter.DrawFilterActivity;  
 import org.achartengine.ChartFactory;  
 import org.achartengine.GraphicalView;  
 import org.achartengine.chart.PointStyle;  
 import org.achartengine.model.XYMultipleSeriesDataset;  
 import org.achartengine.model.XYSeries;  
 import org.achartengine.renderer.XYMultipleSeriesRenderer;  
 import org.achartengine.renderer.XYSeriesRenderer;  
 /**  
  * Created by thinh on 11/22/2015.  
  * class manage drawable Chart on Activity  
  */  
 public class DrawSignal {  
   private GraphicalView myChart;  
   private XYSeriesRenderer signalRenderer;  
   private XYSeries signalSeries;  
   private XYMultipleSeriesRenderer mySeriesRender;  
   private XYMultipleSeriesDataset mySeriesDataset;  
   private LinearLayout llChart;  // draw chart on listview of activity
   private DrawFilterActivity drawFilterActivity;  
   public DrawSignal(DrawFilterActivity drawFilterActivity, LinearLayout llChart ){  
     this.llChart = llChart;  
     this.drawFilterActivity = drawFilterActivity;  
   }  
   /*  
   * initialize all configuration to Chart  
   * */  
   public void initChart(){  
     signalRenderer = new XYSeriesRenderer();  
     mySeriesRender = new XYMultipleSeriesRenderer();  
     mySeriesDataset = new XYMultipleSeriesDataset();  
     //creat signal and filter that you want draw  
     signalSeries = new XYSeries("pulse");  
     // set XYSeriesRender to render data on screen   
     signalRenderer.setColor(Color.BLUE);  
     signalRenderer.setDisplayBoundingPoints(true);  
     signalRenderer.setPointStyle(PointStyle.CIRCLE);  
     signalRenderer.setPointStrokeWidth(1);  
     //set Render Control full chart (control: color, axist, background , line ...)  
     mySeriesRender.addSeriesRenderer(signalRenderer);  
     mySeriesRender.setPanEnabled(false, false);  
     mySeriesRender.setYAxisMax(0.5);  
     mySeriesRender.setYAxisMin(0);  
     mySeriesRender.setShowGrid(true);  
     mySeriesRender.setGridColor(Color.BLACK);  
     mySeriesRender.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00)); // transparent margin  
     mySeriesRender.setXLabels(10);  
     mySeriesRender.setYLabels(10);  
     mySeriesRender.setXLabelsColor(Color.BLUE);  
     mySeriesRender.setYLabelsColor(0, Color.BLUE);  
     mySeriesRender.setAxisTitleTextSize(5);  
     mySeriesRender.addXTextLabel(mySeriesRender.getXAxisMax(), "n");  
     mySeriesRender.addYTextLabel(mySeriesRender.getYAxisMax(), "h[n]");  
     mySeriesRender.setPointSize(4);  
     // add data signal and filter to dataset  
     mySeriesDataset.addSeries(signalSeries);  
     /*mySeriesDataset.addSeries(filterSeries);*/  
   }  
   /*  
   * Add data to XYSeries  
   * */  
   public void addData(double[] filters,int M){  
     for(int i = 0; i<M;i++){  
       signalSeries.add(i,filters[i]);  
     }  
   }  
      /*  
      * here is code to draw data in object signalRenderer on screen managed by mySeriesRender  
      */  
   public void DrawChart(double[] filters, int M){  
     initChart();  
     addData(filters,M);  
     GraphicalView gvChart = ChartFactory.getLineChartView(drawFilterActivity, mySeriesDataset, mySeriesRender);  
     //GraphicalView gvChart = ChartFactory.getBarChartView(drawFilterActivity, mySeriesDataset, mySeriesRender, BarChart.Type.DEFAULT);  
     llChart.addView(gvChart);  
   }  
 }  

Copyright © 2009 Đừng Buông Tay Anh All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive.