今回はGoogle Chart Tools: Image Chartsを使ってグラフを表示させてみる。
Google Chart APIはチャート画像を返してくれるので、これをImageViewとかで表示させるだけでOK。ちなみにAPIのコール数に制限はないけど、1日あたり25万コール以上が想定されるなら、メールで知らせてくりゃってことらしい。
Google Chart Usage Policyパラメータは「List of Chart Parameters」見る。タイトルとか色とか背景色とか凡例の位置とか基本的にはなんでもパラメータあるし好きなように表示できそう。
There's no limit to the number of calls per day you can make to the Google Chart API. However, we reserve the right to block any use that we regard as abusive. If you think your service will make more than 250,000 API calls per day, please let us know by mailing an estimate to chart-api-notifications@google.com.
とりあえず、前にやったデータの円グラフを表示させるコード。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
String chart = "http://chart.apis.google.com/chart?cht=p3&chdlp=b";
chart += "&chtt=" + URLEncoder.encode("サンプル");
chart += "&chd=t:40,5,10,25,20,50";
chart += "&chdl=Cupcake|Donut|Eclair|Froyo|Gingerbread|Honeycomb";
chart += "&chs=" + display.getWidth() + "x" + (display.getHeight() / 3);
try {
ImageView imageview = (ImageView) findViewById(R.id.chart);
InputStream is = (InputStream) new URL(chart).getContent();
Drawable d = Drawable.createFromStream(is, "");
is.close();
imageview.setImageDrawable(d);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
画像をとってきて表示させてるだけなので、AFreeChart、AChartEngineより敷居は引くく簡単に導入できる印象。当然だけど2つと違って、INTERNETのpermissionは必要。