1. 程式人生 > >Android AChartEngine畫柱狀圖

Android AChartEngine畫柱狀圖

你可以選擇合適的版本下載,每個版本都有一個jar包、例項原始碼和java doc提供下載。當前最新版本為0.6。
       需要注意的是,0.6版本不再支援Android 2.0以下(包含2.0)。也就是說如果你的目標平臺使用了7以下SDK版本,比如Android 1.5-2.0。則需要下載老版本的ACE 0.5。

       本文以ACE 0.5為例。
       1、新建Android Project

       在工程中新建一個資料夾比如lib,用於存放ACE Libraries,把achartegine-0.5.0.jar包複製到lib裡面。
       然後把這個jar的路徑新增到專案的Build Path中。

       2、修改AndroidManifest.xml        主要是加入一個<activity>: < activity android:name = "org.achartengine.GraphicalActivity"
/>        呆會我們使用ACE生成柱狀圖,會在一個特殊的Activit中才能顯示,這個Activity就是ACE庫中的 GraphicalActivity 。我們需要在AndroidManifest.xml中申明它,否則Android會報找不到Activity錯誤。
       3、新建Activity        新建一個類,比如叫做main:

java程式碼:
  1. public class main extends ListActivity {
  2. private static final int SERIES_NR = 2;
  3. /** Called when the activity is first created. */
  4. private ArrayList<Map<String,String>> maps = new ArrayList<Map<String,String>>();
  5. @Override
  6. public void onCreate(Bundle savedInstanceState) {
  7. super .onCreate(savedInstanceState);
  8. // setContentView(R.layout.main);
  9. // 加入 ListItem “ 排程查詢 ” HashMap<String,String> map= new HashMap<String,String>(); map.put( "name" , " 柱狀圖 " );
  10. map.put( "desc" , " 顯示柱狀圖 " );
  11. maps .add(map);
  12. // 構建 listView 的介面卡
  13. SimpleAdapter adapter= new SimpleAdapter( this , maps , android.R.layout. simple_list_item_2 ,
  14. // SDK 庫中提供的一個包含兩個 TextView 的 layout new String[]{ "name" , "desc" },
  15. // maps 中的兩個
  16. key new int []{android.R.id. text1 ,android.R.id. text2 }
  17. // 兩個 TextView 的 id );
  18. this .setListAdapter(adapter);
  19. }
  20. // ListItem 監聽器方法
  21. protected void onListItemClick(ListView l, View v, int position, long id) {
  22. super .onListItemClick(l, v, position, id);
  23. XYMultipleSeriesRenderer renderer = getBarDemoRenderer();
  24. Intent intent = ChartFactory.getBarChartIntent ( this , getBarDemoDataset(), renderer, Type. DEFAULT );
  25. startActivity(intent);
  26. }
  27. private XYMultipleSeriesDataset getBarDemoDataset() {
  28. XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
  29. final int nr = 10;
  30. Random r = new Random();
  31. for ( int i = 0; i < SERIES_NR ; i++) {
  32. CategorySeries series = new CategorySeries( "Demo series " + (i + 1));
  33. for ( int k = 0; k < nr; k++) {
  34. series.add(100 + r.nextInt() % 100);
  35. }
  36. dataset.addSeries(series.toXYSeries());
  37. }
  38. return dataset;
  39. }
  40. public XYMultipleSeriesRenderer getBarDemoRenderer() {
  41. XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
  42. SimpleSeriesRenderer r = new SimpleSeriesRenderer();
  43. r.setColor(Color. BLUE );
  44. renderer.addSeriesRenderer(r);
  45. r = new SimpleSeriesRenderer();
  46. r.setColor(Color. GREEN );
  47. renderer.addSeriesRenderer(r);
  48. setChartSettings(renderer);
  49. return renderer;
  50. }
  51. private void setChartSettings(XYMultipleSeriesRenderer renderer) {
  52. renderer.setChartTitle( "Chart demo" );
  53. renderer.setXTitle( "x values" );
  54. renderer.setYTitle( "y values" );
  55. renderer.setXAxisMin(0.5);
  56. renderer.setXAxisMax(10.5);
  57. renderer.setYAxisMin(0);
  58. renderer.setYAxisMax(210);
  59. }
  60. }


       onCreate方法不需要多說了吧,一個ListActivity而已。        在onListItemClick 方法中,當用戶點選了“顯示圖表”之後,構造一個intent物件,然後用startActivity傳送訊息到前面AndroidManifest.xml申明的那個activity( 即 GraphicalActivity )。於是圖表就顯示出來了。
        關鍵是intent的構造方法 ChartFactory.getBarChartIntent。         ChartFactory提供了許多有用的工廠方法,如果你需要生成一個折線圖,可以用它的 getLineChartIntent 方法。         getBarChartIntent 方法有點複雜,需要我們準備很多引數傳入。其中一個是 XYMultipleSeriesDataset 型別的物件,用於提供圖表需要表示的資料集,這裡我們用 getBarDemoDataset 來得到它。另外一個是 XYMultipleSeriesRenderer 型別的物件,用於提供圖表展現時的一些樣式,這裡我們用 getBarDemoRenderer 方法來得到它。
       getLineChartIntent 方法很無聊,使用了一些隨機數來作為圖表資料。注意柱狀圖是支援多系列的,這裡生成了兩個系列的資料。        getBarDemoRenderer 方法構建了一個 XYMultipleSeriesRenderer 用來設定2個系列各自的顏色,然後呼叫 setChartSettings 方法設定了下座標軸樣式。

相關推薦

Android AChartEngine

你可以選擇合適的版本下載,每個版本都有一個jar包、例項原始碼和java doc提供下載。當前最新版本為0.6。        需要注意的是,0.6版本不再支援Android 2.0以下(包含2.0)。也就是說如果你的目標平臺使用了7以下SDK版本,比如Android 1

Android 如何 -------自定義View

實現了 柱狀圖 根據 SeekBar的滑動 改變的效果: 圖示效果: 自定義View的程式碼: package com.example.coustomviewdemo; import android.R.color; import android.content

android achartengine 生成(支援修改背景)

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layo

Androidachartengine和餅的使用

原文地址:http://www.cnblogs.com/wangcan/p/3459551.html 本文介紹了android中如何使用achartengine繪製餅圖和柱狀圖,請分別嘗試餅圖和柱狀圖。 程式碼中的註釋解釋了圖示中的各種設定的使用方法。 一.acha

Matlab

Matlab 畫柱狀圖 errorlist=[std_dfg,std_dfgB,std_tli,std_tliB]; figure('Name','std of reconstruction error' ... ,'position',[100 200 1200 500]...

Android 自定義及屬性動畫

前段時間公司專案中用到了統計圖,網上找了些資料和框架都不能滿足我的需求,沒辦法,只有自己寫了。 近來清閒,將其抽出一個demo了,歡迎大家交流指正。 效果圖先行 實現方案有兩個,一是自定義控制元件,二是使用屬性動畫。屬性動畫在api11以上版本才有,在11版本以下使用可以引入nin

python 使用 matplotlib.pyplot來和餅

匯入包 import matplotlib.pyplot as plt 柱狀圖 最簡柱狀圖 # 顯示高度 def autolabel(rects): for rect in rects: height = rect.get_height() plt.text(r

MATLAB中

論文中需要畫圖進行比較,感覺還是matlab畫起來比較方便,先把自己畫的圖及matlab程式碼放上。 y=[300 311;390 425; 312 321; 250 185; 550 535; 420 432; 410 520;]; b=bar(y); grid on; ch = get(b,

Matlab程式

一、源程式Y = round(rand(5,3)*10);figure;subplot(2,2,1);bar(Y,'grouped');title('Group')subplot(2,2,2);bar(

android自定義

本程式碼是一年前公司專案需要自己所寫,當時做android專案需要統計的功能,統計的圖表包括餅圖、柱狀圖、折線圖,程式碼寫的有些笨拙!希望大家能夠看懂!其程式碼做拋磚引玉,希望大家能夠再改寫下!可以用多執行緒做出動畫,是不是更好呢?這些後期我也沒有整理過,所以誰能再整理下!

echart讀取資料庫資料

var xAxisData = [];var legendData = ['chenrui'];var dataList = [];var echartdata,dat;$.ajax({async : false, // cache : false,type : 'POST

Python詳解(matplotlib)

matplotlib是python最著名的繪相簿,它提供了一整套和matlab相似的命令API,十分適合互動式地進行製圖。而且也可以方便地將它作為繪圖控制元件,嵌入GUI應用程式中。它的文件相當完備,並且Gallery頁面中有上百幅縮圖,開啟之後都有源程式。因此如果你需要

通過JfreeChart、時序、K線

 import java.awt.Color; import java.awt.Paint; import java.io.*; import java.text.SimpleDateFormat; import org.jfree.data.*; import

android(自定義view)

  public class HistogramView extends View { private Paint mLinePaint; private Paint mGreenPaint; private Paint mTextPaint;

關於安卓專案中統計資料achartengine類(包括餅,折線等)的使用

       最近由於專案中需要統計資料,通過比較直觀的方式展示給使用者,所以就抽時間學習了一個統計圖的類庫achartengine,裡面包含統計中所需的餅狀圖,柱狀圖,折線圖等等,所以就拿出來給大家分享一下,希望大家相互學習,如有不足之處

d3.js(v5.7)完整地一個

img edi http 代碼 坐標 不能 畫布 分享 ueditor 一、首先定義畫布大小以及繪畫區域的位置(總不能頂著屏幕邊沿畫吧) 代碼: 圖示: 二、橫、縱向坐標軸 代碼: 圖示:

Android MPChart—

第三方資源庫MPChart如何新增到專案中就不說了,不知道的網上搜一下,很多。 本篇主要說明MPChart中BarChart(柱狀圖)是如何呼叫實現的。 一、佈局檔案 <com.github.mikephil.charting.charts.BarChart

Android

第一步 新增依賴或匯入Library dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-

用ECharts多柱子(可點選)

其實用ECharts畫柱子還是挺簡單的,多去官網看看官方文件,就理解了。 columLabel是多柱子的名字。columName 是橫座標。bgColorList 是柱子的顏色。arr 是每個柱子的值。list 是後臺傳過來的各個柱子的值,但是要經過處理賦值給arr ,賦值的方法也不只這一種

Android 實現視覺化動態音訊

public class FFTActivity extends Activity implements OnClickListener{ private Button button; private ImageView imageView; private int frequency = 8000;