亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用AChartEngine畫柱狀圖

系統 1954 0

AChartEngine(簡稱ACE)是Google的一個開源圖表庫(for Android)。它功能強大,支持散點圖、折線圖、餅圖、氣泡圖、柱狀圖、短棒圖、儀表圖等多種圖表。

該項目地址位于: http://code.google.com/p/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中。

使用AChartEngine畫柱狀圖

<!-- StartFragment-->

2、修改AndroidManifest.xml

主要是加入一個 <activity>:

< activity android:name = "org.achartengine.GraphicalActivity" />

呆會我們使用 ACE生成柱狀圖,會在一個特殊的Activit中才能顯示,這個Activity就是ACE庫中的 GraphicalActivity 。我們需要在AndroidManifest.xml中申明它,否則Android會報找不到Activity錯誤。

3、新建Activity

新建一個類,比如叫做 main:

public class main extends ListActivity {

private static final int SERIES_NR = 2;

/** Called when the activity is first created. */

private ArrayList<Map<String,String>> maps = new ArrayList<Map<String,String>>();

@Override

public void onCreate(Bundle savedInstanceState) {

super .onCreate(savedInstanceState);

// setContentView(R.layout.main);

// 加入 ListItem “ 調度查詢

HashMap<String,String> map= new HashMap<String,String>();

map.put( "name" , " 柱狀圖 " );

map.put( "desc" , " 顯示柱狀圖 " );

maps .add(map);

// 構建 listView 的適配器

SimpleAdapter adapter= new SimpleAdapter( this , maps ,

android.R.layout. simple_list_item_2 , // SDK 庫中提供的一個包含兩個 TextView layout

new String[]{ "name" , "desc" }, // maps 中的兩個 key

new int []{android.R.id. text1 ,android.R.id. text2 } // 兩個 TextView id

);

this .setListAdapter(adapter);

}

// ListItem 監聽器方法

protected void onListItemClick(ListView l, View v, int position, long id) {

super .onListItemClick(l, v, position, id);

XYMultipleSeriesRenderer renderer = getBarDemoRenderer();

Intent intent = ChartFactory. getBarChartIntent ( this , getBarDemoDataset(), renderer, Type. DEFAULT );

startActivity(intent);

}

private XYMultipleSeriesDataset getBarDemoDataset() {

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

final int nr = 10;

Random r = new Random();

for ( int i = 0; i < SERIES_NR ; i++) {

CategorySeries series = new CategorySeries( "Demo series " + (i + 1));

for ( int k = 0; k < nr; k++) {

series.add(100 + r.nextInt() % 100);

}

dataset.addSeries(series.toXYSeries());

}

return dataset;

}

public XYMultipleSeriesRenderer getBarDemoRenderer() {

XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

SimpleSeriesRenderer r = new SimpleSeriesRenderer();

r.setColor(Color. BLUE );

renderer.addSeriesRenderer(r);

r = new SimpleSeriesRenderer();

r.setColor(Color. GREEN );

renderer.addSeriesRenderer(r);

setChartSettings(renderer);

return renderer;

}

private void setChartSettings(XYMultipleSeriesRenderer renderer) {

renderer.setChartTitle( "Chart demo" );

renderer.setXTitle( "x values" );

renderer.setYTitle( "y values" );

renderer.setXAxisMin(0.5);

renderer.setXAxisMax(10.5);

renderer.setYAxisMin(0);

renderer.setYAxisMax(210);

}

}

先把上面的代碼進行簡單的復制粘貼。好了,運行程序試試:

使用AChartEngine畫柱狀圖

<!-- StartFragment-->

好了,下面來看代碼。

onCreate方法不需要多說了吧,一個ListActivity而已。

onListItemClick 方法中,當用戶點擊了“顯示圖表”之后,構造一個 intent對象,然后用startActivity發送消息到前面AndroidManifest.xml申明的那個activity( GraphicalActivity )。于是圖表就顯示出來了。

關鍵是 intent的構造方法 ChartFactory.getBarChartIntent。

ChartFactory提供了許多有用的工廠方法,如果你需要生成一個折線圖,可以用它的 getLineChartIntent 方法。

getBarChartIntent 方法有點復雜,需要我們準備很多參數傳入。其中一個是 XYMultipleSeriesDataset 類型的對象,用于提供圖表需要表示的數據集,這里我們用 getBarDemoDataset 來得到它。另外一個是 XYMultipleSeriesRenderer 類型的對象,用于提供圖表展現時的一些樣式,這里我們用 getBarDemoRenderer 方法來得到它。

getLineChartIntent 方法很無聊,使用了一些隨機數來作為圖表數據。注意柱狀圖是支持多系列的,這里生成了兩個系列的數據。

getBarDemoRenderer 方法構建了一個 XYMultipleSeriesRenderer 用來設置2個系列各自的顏色,然后調用 setChartSettings 方法設置了下坐標軸樣式。

<!-- EndFragment-->

<!-- EndFragment-->

<!-- EndFragment-->

使用AChartEngine畫柱狀圖


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 91日韩精品天海翼在线观看 | 久久精品视频播放 | 欧美aⅴ片 | 久久99精品久久久久久国产越南 | 热re99久久精品国产99热 | 亚洲精品久久99久久一区 | 日韩女人做爰大片 | 99色图| 久久久国产视频 | 日韩最新视频一区二区三 | 国产精品久久久久久久久免费观看 | 亚洲成片观看四虎永久 | 国产尤物福利视频在线观看 | 四虎精品影院2022 | 综合久久2o19 | 久久奇米| 天天射天天添 | 成人午夜性a一级毛片美女 成人午夜性视频欧美成人 成人午夜亚洲影视在线观看 | 免费观看国产精品 | 亚洲一区二区三区精品国产 | 成人免费久久精品国产片久久影院 | julia中文字幕久久亚洲 | 亚洲成人福利 | 国产大片在线观看 | 网色视频| 成 人 色综合 | 午夜按摩 | 欧美日韩色黄大片在线视频 | 国产精品自线在线播放 | 五月婷影院 | 久久免费精品国产视频 | 91手机在线 | 久久亚洲国产欧洲精品一 | 国产亚洲欧美日韩v在线 | 国产精品四虎在线观看免费 | 久草视频在线资源 | 999精品国产 | 日本-区二区三区免费精品 日本热久久 | 91国内精品久久久久免费影院 | 91在线免费视频观看 | 国产尤物精品视频 |