欢迎来到传世资源网!
加载中...
正在加载,请耐心等待...
本站为收藏、学习站,如有侵权,请联系管理员删除!

Android_图形图表_示例源码_

介绍 评论 失效链接反馈

/**
 * Copyright (C) 2009 - 2013 SC 4ViewSoft SRL
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.achartengine.chartdemo.demo;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;

import org.achartengine.ChartFactory;
import org.achartengine.chart.BarChart.Type;
import org.achartengine.chart.PointStyle;
import org.achartengine.chart.TimeChart;
import org.achartengine.chartdemo.demo.chart.IDemoChart;
import org.achartengine.model.CategorySeries;
import org.achartengine.model.TimeSeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.SimpleSeriesRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;

import android.app.ListActivity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class GeneratedChartDemo extends ListActivity {
 private static final int SERIES_NR = 2;

 private String[] mMenuText;

 private String[] mMenuSummary;

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  // I know, I know, this should go into strings.xml and accessed using
  // getString(R.string....)
  mMenuText = new String[] { "Line chart", "Scatter chart", "Time chart", "Bar chart" };
  mMenuSummary = new String[] { "Line chart with randomly generated values",
    "Scatter chart with randomly generated values",
    "Time chart with randomly generated values", "Bar chart with randomly generated values" };
  setListAdapter(new SimpleAdapter(this, getListValues(), android.R.layout.simple_list_item_2,
    new String[] { IDemoChart.NAME, IDemoChart.DESC }, new int[] { android.R.id.text1, android.R.id.text2 }));
 }

 private List<Map<String, String>> getListValues() {
  List<Map<String, String>> values = new ArrayList<Map<String, String>>();
  int length = mMenuText.length;
  for (int i = 0; i < length; i ) {
   Map<String, String> v = new HashMap<String, String>();
   v.put(IDemoChart.NAME, mMenuText[i]);
   v.put(IDemoChart.DESC, mMenuSummary[i]);
   values.add(v);
  }
  return values;
 }

 private XYMultipleSeriesDataset getDemoDataset() {
  XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
  final int nr = 10;
  Random r = new Random();
  for (int i = 0; i < SERIES_NR; i ) {
   XYSeries series = new XYSeries("Demo series "  (i  1));
   for (int k = 0; k < nr; k ) {
    series.add(k, 20  r.nextInt() % 100);
   }
   dataset.addSeries(series);
  }
  return dataset;
 }

 private XYMultipleSeriesDataset getDateDemoDataset() {
  XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
  final int nr = 10;
  long value = new Date().getTime() - 3 * TimeChart.DAY;
  Random r = new Random();
  for (int i = 0; i < SERIES_NR; i ) {
   TimeSeries series = new TimeSeries("Demo series "  (i  1));
   for (int k = 0; k < nr; k ) {
    series.add(new Date(value  k * TimeChart.DAY / 4), 20  r.nextInt() % 100);
   }
   dataset.addSeries(series);
  }
  return dataset;
 }

 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;
 }

 private XYMultipleSeriesRenderer getDemoRenderer() {
  XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
  renderer.setAxisTitleTextSize(16);
  renderer.setChartTitleTextSize(20);
  renderer.setLabelsTextSize(15);
  renderer.setLegendTextSize(15);
  renderer.setPointSize(5f);
  renderer.setMargins(new int[] {20, 30, 15, 0});
  XYSeriesRenderer r = new XYSeriesRenderer();
  r.setColor(Color.BLUE);
  r.setPointStyle(PointStyle.SQUARE);
  r.setFillBelowLine(true);
  r.setFillBelowLineColor(Color.WHITE);
  r.setFillPoints(true);
  renderer.addSeriesRenderer(r);
  r = new XYSeriesRenderer();
  r.setPointStyle(PointStyle.CIRCLE);
  r.setColor(Color.GREEN);
  r.setFillPoints(true);
  renderer.addSeriesRenderer(r);
  renderer.setAxesColor(Color.DKGRAY);
  renderer.setLabelsColor(Color.LTGRAY);
  return renderer;
 }

 public XYMultipleSeriesRenderer getBarDemoRenderer() {
  XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
  renderer.setAxisTitleTextSize(16);
  renderer.setChartTitleTextSize(20);
  renderer.setLabelsTextSize(15);
  renderer.setLegendTextSize(15);
  renderer.setMargins(new int[] {20, 30, 15, 0});
  SimpleSeriesRenderer r = new SimpleSeriesRenderer();
  r.setColor(Color.BLUE);
  renderer.addSeriesRenderer(r);
  r = new SimpleSeriesRenderer();
  r.setColor(Color.GREEN);
  renderer.addSeriesRenderer(r);
  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);
 }

 @Override
 protected void onListItemClick(ListView l, View v, int position, long id) {
  super.onListItemClick(l, v, position, id);
  switch (position) {
  case 0:
   Intent intent = ChartFactory.getLineChartIntent(this, getDemoDataset(), getDemoRenderer());
   startActivity(intent);
   break;
  case 1:
   intent = ChartFactory.getScatterChartIntent(this, getDemoDataset(), getDemoRenderer());
   startActivity(intent);
   break;
  case 2:
   intent = ChartFactory.getTimeChartIntent(this, getDateDemoDataset(), getDemoRenderer(), null);
   startActivity(intent);
   break;
  case 3:
   XYMultipleSeriesRenderer renderer = getBarDemoRenderer();
   setChartSettings(renderer);
   intent = ChartFactory.getBarChartIntent(this, getBarDemoDataset(), renderer, Type.DEFAULT);
   startActivity(intent);
   break;
  }
 }
}

下载声明:

本站资源均有第三方用户自行上传分享推荐,非本站自制,仅供玩家做交流学习之用!切勿用于商业用途!游戏作品版权归原作者享有,如有版权问题,请附带版权证明至邮件,本平台将应您的要求删除。
相关推荐:

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复