欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Android 圖表應用 解決方案

系統 2000 0

本文演示在Android平臺中繪制和展示圖表示例,本示例是基于RChart 2實現的。

在一個系統中經常要用到圖表統計數據,在WEB開發中圖表繪制是一件簡單的事情,因為有比較多的開源方案。但在Android中開源方案并不多。

Android中繪制圖表解決方案: ?

1) 使用google 圖表 api   ?

2) 使用Achartengine庫(http://www.achartengine.org/)   

3) 使用chartdroid庫(http://code.google.com/p/chartdroid/)

4) 使用?RChart 2庫實現。

?

第一種解決方案是使用google的圖表API。

可以到如下這個地址去申請使用google 圖表API(http://code.google.com/apis/chart/)。

這個API特別適合去生成餅狀圖。調用的格式如下即可:

  http://chart.apis.google.com/chart?cht=p3&chd=t:30,60,10&chs=250x100&chl=cars|bikes|trucks
  其中cht=p3表示生成的是一個餅狀圖;chd=t:30,60,10表示要生成三個部分的數據,分別是30,60,10,當然也可以其他更復雜的數據形式。
  chs=250*100表示的是圖型的大小(寬度*高度);chl=cars|bikes|trucks指出了這三部分數據內容的文字標簽,即實際上顯示在圖表上的。
  使用方法很簡單,只需要在oncreate事件中如下調用即可:
@Override?

public void ?onCreate(Bundle?savedInstanceState)?{?
super .onCreate(savedInstanceState);?
WebView?googleChartView?=? new ?WebView( this );?
setContentView(googleChartView);?
String?mUrl?=?"http://chart.apis.google.com/chart?cht=p3&?chd=t:30,60,10&chs=250x100&chl=cars|bikes|trucks";?
googleChartView.loadUrl(mUrl);?
}

由于需要連接網絡,需要在配置文件中加入訪問網絡權限:

? < uses-permission? android:name ="android.permission.INTERNET" ? />

?關于google 圖表API更多的資料請參考http://code.google.com/intl/zh-CN/apis/chart/image/docs/making_charts.html

?

缺點:必須連網才能訪問API,生成圖形。

示例效果如下圖:

Android 圖表應用 解決方案 ?

?

第二種解決方案是使用Achartengine庫。

下載地址在:http://code.google.com/p/achartengine/downloads/list ,將其JAR下載后,放到工程的lib包庫中,結構如下圖:?

Android 圖表應用 解決方案

代碼如下顯示:

?

public ? class ?AChartExample?{??

public ?Intent?execute(Context?context)?{?
int []?colors?=? new ? int []?{?Color.RED,?Color.YELLOW,?Color.BLUE?};?
DefaultRenderer?renderer?=?buildCategoryRenderer(colors);?
CategorySeries?categorySeries?=? new ?CategorySeries("Vehicles?Chart");?
categorySeries.add("cars?",?30);?
categorySeries.add("trucks",?20);?
categorySeries.add("bikes?",?60);?
return ?ChartFactory.getPieChartIntent(context,?categorySeries,?renderer);?
}?
??
protected ?DefaultRenderer?buildCategoryRenderer( int []?colors)?{?
DefaultRenderer?renderer?=? new ?DefaultRenderer();?
for ?( int ?color?:?colors)?{?
SimpleSeriesRenderer?r?=? new ?SimpleSeriesRenderer();?
r.setColor(color);?
renderer.addSeriesRenderer(r);?
}?
return ?renderer;?
}?
}

?在我們的主類中,進行如下調用:   

Intent achartIntent = new AChartExample().execute(this);   

startActivity(achartIntent);   

最后生成的效果如下圖:

Android 圖表應用 解決方案

?

示例代碼下載: /Files/hanyonglu/AndroidFile/achartengine-0.7.0-demo-source.rar ? ?

?

第三種解決方案是使用chartdroid,要注意的是。

如果使用這種方法的話,必須先下載并安裝Chardroid這個APK,下載地址在:http://code.google.com/p/chartdroid/downloads/list,下載并將其APK包進行安裝。

?要使用Chartdroid,必須要使用content provider,代碼如下:

public ? class ?ChartDroidDataProvider? extends ?ContentProvider?{??

static final ?String?AUTHORITY?=??"com.xyz.contentprovider.chardroid";?
@Override
public ?String?getType(Uri?uri)?{?
return ?"vnd.android.cursor.dir/vnd.com.googlecode.chartdroid.graphable";?
}?
public ? static ? final ?Uri?PROVIDER_URI?=? new ?Uri.Builder().scheme(?
ContentResolver.SCHEME_CONTENT).authority(AUTHORITY).build();?
@Override
public ?Cursor?query(Uri?uri,?String[]?projection,?String?selection,?
String[]?selectionArgs,?String?sortOrder)?{?
??
// 獲得實際數據??
MatrixCursor?c?=? new ?MatrixCursor( new ?String[]??????????????????{?BaseColumns._ID,?
"COLUMN_AXIS_INDEX",?"COLUMN_SERIES_INDEX",?
"COLUMN_DATUM_VALUE",?"COLUMN_DATUM_LABEL"?});?
??
c.newRow().add(1).add(0).add(1).add(30).add( null );?
c.newRow().add(2).add(0).add(1).add(10).add( null );?
c.newRow().add(3).add(0).add(1).add(60).add( null );?
??
return ?c;?
}?

}?


在上面的代碼中,我們使用了MatrixCursor生成了相關的數據:30,10,60。關于ChartDroid的詳細ContentProvider信息,請參考http://code.google.com/p/chartdroid/wiki/InterfaceSpecification。

接下來,代碼如下:

Intent?chartDroidIntent?=? new ?Intent(Intent.ACTION_VIEW,??

ChartDroidDataProvider.PROVIDER_URI);?
chartDroidIntent.putExtra(Intent.EXTRA_TITLE,?"Chart?droid");?
chartDroidIntent?
.addCategory("com.googlecode.chartdroid.intent.category.PIE_CHART");?

startActivity(chartDroidIntent);??

注意,這里要使用charDroidIntent的addCategory方法去指定圖表的類型,即   com.googlecode.chartdroid.intent.category.PIE_CHART。下圖是運行效果:

? Android 圖表應用 解決方案

?

第四種解決方案是使用RChart 2?庫,關于RChart 2信息訪問:http://www.java4less.com/charts/chart.php

下面是一些示例實現效果:

Android 圖表應用 解決方案 ? Android 圖表應用 解決方案

?

?最后,希望轉載的朋友能夠尊重作者的勞動成果,加上轉載地址: http://www.cnblogs.com/hanyonglu/archive/2012/02/20/2360334.html ? ?謝謝。

完畢。^_^

Android 圖表應用 解決方案


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品27页 | 欧美视频第二页 | 久久国产热视频 | 久久人人爽人人爽人人片va | 最新国产网址 | av色在线| 久碰人澡人澡人澡人澡91 | 久久国产亚洲观看 | 九九九视频| 久久这里只有精品免费播放 | 一区二区三区日本在线观看 | 色多多成视频人在线观看 | 污污的网站免费观看 | 久久久久久久免费视频 | 亚洲高清一区二区三区 | 精品国产乱码久久久久久久 | 精品一区二区三区四区 | 狠狠躁夜夜躁人人爽天天段 | 99久久久国产精品免费99 | 色八影院| 日韩av福利 | 色橹橹欧美在线观看视频高清免费 | 国产在线aaa片一区二区99 | 欧美成人a级在线视频 | 精品久久99| 色人阁亚洲 | 亚洲视频在线网站 | 激情视频网站 | 欧美精品一区二区三区在线 | 国产成人免费无庶挡视频 | 婷婷在线五月 | 波多野结衣中文在线播放 | 亚洲欧美日韩一级特黄在线 | 精品久久久久久久 | 亚洲欧美成人综合在线 | 天天插天天插天天插 | 97爱爱爱 | h网站国产 | 激情五月婷婷 | 亚洲人成在线观看一区二区 | 欧美国产激情二区三区 |