国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android開發(fā)中使用achartengine繪制各種圖表的方法

2019-10-22 18:25:26
字體:
供稿:網(wǎng)友

本文實例講述了Android開發(fā)中使用achartengine繪制各種圖表的方法。分享給大家供大家參考,具體如下:

1. ABarChart.java

package com.anjoyo.achartengine;import java.util.Random;import org.achartengine.ChartFactory;import org.achartengine.chart.BarChart.Type;import org.achartengine.model.CategorySeries;import org.achartengine.model.XYMultipleSeriesDataset;import org.achartengine.renderer.SimpleSeriesRenderer;import org.achartengine.renderer.XYMultipleSeriesRenderer;import android.content.Context;import android.content.Intent;import android.graphics.Color;public class ABarChart {  public Intent execute(Context context) {    return ChartFactory.getBarChartIntent(context, getBarChartDataset(), getBarChartRenderer(), Type.DEFAULT);  }  private XYMultipleSeriesRenderer getBarChartRenderer() {    // TODO Auto-generated method stub    XYMultipleSeriesRenderer renderer=new XYMultipleSeriesRenderer();    SimpleSeriesRenderer r;    r=new SimpleSeriesRenderer();    r.setColor(Color.BLUE);    renderer.addSeriesRenderer(r);    r=new SimpleSeriesRenderer();    r.setColor(Color.GREEN);    renderer.addSeriesRenderer(r);    setBarChartRenderer(renderer);    return renderer;  }  private void setBarChartRenderer(XYMultipleSeriesRenderer renderer) {    // TODO Auto-generated method stub    renderer.setChartTitle("Bar Chart");    renderer.setXTitle("X Axis");    renderer.setYTitle("Y Axis");    renderer.setXAxisMax(10.5);    renderer.setXAxisMin(0.5);    renderer.setYAxisMax(210);    renderer.setYAxisMin(0);  }  private XYMultipleSeriesDataset getBarChartDataset() {    // TODO Auto-generated method stub    XYMultipleSeriesDataset dataset=new XYMultipleSeriesDataset();    final int SERIES_NR=2;    final int NR=10;    Random random=new Random();    for (int i = 0; i < SERIES_NR; i++) {      CategorySeries series=new CategorySeries("Bar Chart---"+(i+1));      for (int j = 0; j < NR; j++) {        series.add(100+random.nextInt(100));      }      dataset.addSeries(series.toXYSeries());    }    return dataset;  }}

2. ABubbleChart.java

package com.anjoyo.achartengine;import java.util.Random;import org.achartengine.ChartFactory;import org.achartengine.chart.PointStyle;import org.achartengine.model.XYMultipleSeriesDataset;import org.achartengine.model.XYValueSeries;import org.achartengine.renderer.XYMultipleSeriesRenderer;import org.achartengine.renderer.XYSeriesRenderer;import android.content.Context;import android.content.Intent;import android.graphics.Color;public class ABubbleChart {  private final int SERIES_NR = 3;  private final int NR = 20;  public Intent execute(Context context) {    return ChartFactory.getBubbleChartIntent(context,        getBubbleChartDataset(), getBubbleChartRenderer(),        "Bubble Chart Demo");  }  private XYMultipleSeriesRenderer getBubbleChartRenderer() {    // TODO Auto-generated method stub    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();    int[] linearColor = { Color.RED, Color.GREEN, Color.BLUE };    XYSeriesRenderer r;    for (int i = 0; i < SERIES_NR; i++) {      // entry=new XYEntry<Integer, Integer>(key, value);      r = new XYSeriesRenderer();      r.setColor(linearColor[i]);      r.setPointStyle(PointStyle.POINT);      r.setLineWidth(2);      renderer.addSeriesRenderer(r);    }    setBarChartRenderer(renderer);    return renderer;  }  private XYMultipleSeriesDataset getBubbleChartDataset() {    // TODO Auto-generated method stub    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();    for (int i = 0; i < SERIES_NR; i++) {      XYValueSeries series = new XYValueSeries("Bubble Chart---"          + (i + 1));      int temp = 10 * i;      int[][] data = getBasicData();      for (int j = 0; j < data.length; j++) {        if((j+1)%5 ==0){          int x = data[j][0];          int y = temp;          int value=data[j][1]+temp;          series.add(x, y, value);        }      }      dataset.addSeries(series);    }    return dataset;  }  private int[][] getBasicData() {    int[][] data = new int[20][2];    Random rand = new Random();    for (int i = 0; i < data.length; i++) {      data[i][0] = i;      data[i][1] = 20 + rand.nextInt(20) % 20;    }    return data;  }  private void setBarChartRenderer(XYMultipleSeriesRenderer renderer) {    // TODO Auto-generated method stub    renderer.setChartTitle("Bubble Chart");    renderer.setXTitle("X Axis");    renderer.setYTitle("Y Axis");    renderer.setXAxisMax(20);    renderer.setXAxisMin(0);    renderer.setYAxisMax(30);    renderer.setYAxisMin(0);    renderer.setAntialiasing(true);//沒有看出有啥效果來    renderer.setApplyBackgroundColor(true);//設(shè)置背景顏色    renderer.setBackgroundColor(Color.TRANSPARENT);    renderer.setShowAxes(true);//    renderer.setAxesColor(Color.GRAY);    renderer.setClickEnabled(true);//設(shè)置了之后,不可再拖動    renderer.setZoomButtonsVisible(true);//設(shè)置伸縮按鈕是否可見    renderer.setZoomEnabled(true);    renderer.setExternalZoomEnabled(true);//設(shè)置是否可以向伸縮    renderer.setLabelsColor(Color.GREEN);    renderer.setLabelsTextSize(16);  }}

3. ALinearChart.java

package com.anjoyo.achartengine;import java.util.Random;import org.achartengine.ChartFactory;import org.achartengine.chart.PointStyle;import org.achartengine.model.XYMultipleSeriesDataset;import org.achartengine.model.XYSeries;import org.achartengine.renderer.XYMultipleSeriesRenderer;import org.achartengine.renderer.XYSeriesRenderer;import android.content.Context;import android.content.Intent;import android.graphics.Color;public class ALinearChart {  private final int SERIES_NR=3;  private final int NR=20;  public Intent execute(Context context) {    return ChartFactory.getLineChartIntent(context, getLinearChartDataset(), getLinearChartRenderer(), "Linear Chart Another");  }  private XYMultipleSeriesRenderer getLinearChartRenderer() {    // TODO Auto-generated method stub    int[] linearColor={Color.RED, Color.GREEN, Color.BLUE};    int[] belowLinearColor={Color.YELLOW, Color.CYAN, Color.GRAY};    XYMultipleSeriesRenderer renderer=new XYMultipleSeriesRenderer();    XYSeriesRenderer tempRender;    for (int i = 0; i < SERIES_NR; i++) {      tempRender=new XYSeriesRenderer();      tempRender.setColor(linearColor[i]);//     tempRender.setFillBelowLine(true);//     tempRender.setFillBelowLineColor(belowLinearColor[i]);      tempRender.setPointStyle(PointStyle.POINT);      tempRender.setLineWidth(2);      renderer.addSeriesRenderer(tempRender);    }    setLinearChartRenderer(renderer);    return renderer;  }  private void setLinearChartRenderer(XYMultipleSeriesRenderer renderer) {    // TODO Auto-generated method stub    renderer.setChartTitle("Three Linear Chart");    renderer.setXAxisMax(20);    renderer.setXAxisMin(0);    renderer.setYAxisMax(60);    renderer.setYAxisMin(0);  }  private XYMultipleSeriesDataset getLinearChartDataset() {    // TODO Auto-generated method stub    XYMultipleSeriesDataset dataset=new XYMultipleSeriesDataset();    for (int i = 0; i < SERIES_NR; i++) {      XYSeries series=new XYSeries("Stock Trend---"+(i+1));      int temp=10*i;      int[][] data=getBasicData();      for (int j = 0; j < data.length; j++) {        int x=data[j][0];        int y=temp+data[j][1];        series.add(x, y);      }      dataset.addSeries(series);    }    return dataset;  }  private int[][] getBasicData() {    int[][] data=new int[20][2];    Random rand=new Random();    for (int i = 0; i < data.length; i++) {      data[i][0]=i;      data[i][1]=20+rand.nextInt(20)%20;    }    return data;  }}

4. APieChart.java

package com.anjoyo.achartengine;import org.achartengine.ChartFactory;import org.achartengine.model.CategorySeries;import org.achartengine.renderer.DefaultRenderer;import org.achartengine.renderer.SimpleSeriesRenderer;import android.content.Context;import android.content.Intent;import android.graphics.Color;public class APieChart {  private double[] values = { 25, 30, 45 };  public APieChart() {    // TODO Auto-generated constructor stub  }  public APieChart(double[] values) {    if (values.length == 3) {      for (int i = 0; i < values.length; i++) {        this.values[i] = values[i];      }    }  }  public Intent execute(Context context) {    int[] colors={Color.BLUE, Color.GREEN, Color.YELLOW};    DefaultRenderer renderer=buildCategoryRenderer(colors);    renderer.setAntialiasing(true);//沒有看出有啥效果來    renderer.setApplyBackgroundColor(true);//設(shè)置背景顏色    renderer.setBackgroundColor(Color.TRANSPARENT);    renderer.setShowAxes(true);//    renderer.setAxesColor(Color.GRAY);    renderer.setClickEnabled(true);//設(shè)置了之后,不可再拖動    renderer.setZoomButtonsVisible(true);//設(shè)置伸縮按鈕是否可見    renderer.setZoomEnabled(true);    renderer.setExternalZoomEnabled(true);//設(shè)置是否可以向伸縮    renderer.setLabelsColor(Color.GREEN);    renderer.setLabelsTextSize(16);//   renderer.setLegendHeight(50);//   renderer.setPanEnabled(true);    renderer.setStartAngle(180);//好像不好用啊    CategorySeries series=new CategorySeries("Fruit Ratio");    series.add("Apple", values[0]);    series.add("Banana", values[1]);    series.add("Orange", values[2]);    return ChartFactory.getPieChartIntent(context, series, renderer, "水果");  }  private DefaultRenderer buildCategoryRenderer(int[] colors) {    DefaultRenderer renderer=new DefaultRenderer();    renderer.setApplyBackgroundColor(true);    renderer.setBackgroundColor(Color.GRAY);    renderer.setLabelsTextSize(20);    renderer.setChartTitle("餅狀圖");    renderer.setChartTitleTextSize(20);    renderer.setLegendTextSize(20);    renderer.setLegendHeight(50);    for (int i = 0; i < colors.length; i++) {      int j = colors[i];      SimpleSeriesRenderer r=new SimpleSeriesRenderer();      r.setColor(j);      renderer.addSeriesRenderer(r);    }    return renderer;  }}

5. MainActivity.java

package com.anjoyo.achartengine;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {  private Button lineChartBtn;  private Button areaChartBtn;  private Button scatterChartBtn;  private Button timeChartBtn;  private Button barChartBtn;  private Button pieChartBtn;  private Button bubbleChartBtn;  private Button doughnutChartBtn;  private Button rangeBarChartBtn;  private Button dialChartBtn;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    lineChartBtn=(Button) findViewById(R.id.line_chart);    areaChartBtn=(Button) findViewById(R.id.area_chart);    scatterChartBtn=(Button) findViewById(R.id.scatter_chart);    timeChartBtn=(Button) findViewById(R.id.time_chart);    barChartBtn=(Button) findViewById(R.id.bar_chart);    pieChartBtn=(Button) findViewById(R.id.pie_chart);    bubbleChartBtn=(Button) findViewById(R.id.bubble_chart);    doughnutChartBtn=(Button) findViewById(R.id.doughnut_chart);    rangeBarChartBtn=(Button) findViewById(R.id.range_bar_chart);    dialChartBtn=(Button) findViewById(R.id.dial_chart);    OnClickListener listener=new AChartEngineListener();    lineChartBtn.setOnClickListener(listener);    pieChartBtn.setOnClickListener(listener);    barChartBtn.setOnClickListener(listener);    bubbleChartBtn.setOnClickListener(listener);  }  class AChartEngineListener implements OnClickListener{    @Override    public void onClick(View v) {      // TODO Auto-generated method stub      switch (v.getId()) {      case R.id.line_chart://       Intent intent=new Intent(MainActivity.this, LinearChartActivity.class);//       startActivity(intent);        Intent linearChartIntent=new ALinearChart().execute(MainActivity.this);        startActivity(linearChartIntent);        break;      case R.id.area_chart:        break;      case R.id.scatter_chart:        break;      case R.id.time_chart:        break;      case R.id.bar_chart:        Intent barChartIntent=new ABarChart().execute(MainActivity.this);        startActivity(barChartIntent);        break;      case R.id.pie_chart:        Intent pieChartIntent=new APieChart().execute(MainActivity.this);        startActivity(pieChartIntent);        break;      case R.id.bubble_chart:        Intent bubbleChartIntent=new ABubbleChart().execute(MainActivity.this);        startActivity(bubbleChartIntent);        break;      case R.id.doughnut_chart:        break;      case R.id.range_bar_chart:        break;      case R.id.dial_chart:        break;      default:        break;      }    }  }}

6. LinearChartActivity.java

package com.anjoyo.achartengine;import java.util.Random;import org.achartengine.ChartFactory;import org.achartengine.GraphicalView;import org.achartengine.chart.PointStyle;import org.achartengine.model.XYMultipleSeriesDataset;import org.achartengine.model.XYSeries;import org.achartengine.renderer.XYMultipleSeriesRenderer;import org.achartengine.renderer.XYSeriesRenderer;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.ViewGroup.LayoutParams;import android.widget.LinearLayout;public class LinearChartActivity extends Activity {  private XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();  private XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();  private XYSeries currentSeries;  private XYSeriesRenderer currentRenderer;  private String dateFormat;  private GraphicalView chartView;  @Override  protected void onRestoreInstanceState(Bundle savedInstanceState) {    // TODO Auto-generated method stub    super.onRestoreInstanceState(savedInstanceState);    dataset = (XYMultipleSeriesDataset) savedInstanceState        .getSerializable("dataset");    renderer = (XYMultipleSeriesRenderer) savedInstanceState        .getSerializable("renderer");    currentSeries = (XYSeries) savedInstanceState        .getSerializable("current_series");    currentRenderer = (XYSeriesRenderer) savedInstanceState        .getSerializable("current_renderer");    dateFormat = savedInstanceState.getString("date_format");  }  @Override  protected void onSaveInstanceState(Bundle outState) {    // TODO Auto-generated method stub    super.onSaveInstanceState(outState);    outState.putSerializable("dataset", dataset);    outState.putSerializable("renderer", renderer);    outState.putSerializable("current_series", currentSeries);    outState.putSerializable("current_renderer", currentRenderer);    outState.putString("date_format", dateFormat);  }  @Override  protected void onCreate(Bundle savedInstanceState) {    // TODO Auto-generated method stub    super.onCreate(savedInstanceState);    setContentView(R.layout.stock_chart);    String seriesTitle = "上證指數(shù)";    XYSeries series = new XYSeries(seriesTitle);    dataset.addSeries(series);    currentSeries = series;    XYSeriesRenderer seriesRenderer = new XYSeriesRenderer();    seriesRenderer.setColor(Color.BLUE);    seriesRenderer.setFillBelowLine(true);//   seriesRenderer.setFillBelowLineColor(Color.RED);//折線下面區(qū)域是否添加顏色    seriesRenderer.setPointStyle(PointStyle.POINT);    seriesRenderer.setLineWidth(3);    renderer.addSeriesRenderer(seriesRenderer);//   添加另外一條曲線圖//   seriesRenderer = new XYSeriesRenderer();//   seriesRenderer.setColor(Color.GREEN);//   seriesRenderer.setFillBelowLine(true);//   seriesRenderer.setFillBelowLineColor(Color.YELLOW);//   seriesRenderer.setPointStyle(PointStyle.POINT);//   seriesRenderer.setLineWidth(3);//   renderer.addSeriesRenderer(seriesRenderer);    renderer.setYAxisMin(0);    renderer.setYAxisMax(100);    renderer.setXAxisMax(20);    renderer.setShowGrid(false);    renderer.setXLabels(20);    renderer.setChartTitle("上證指數(shù)-24小時趨勢圖");    currentRenderer = seriesRenderer;    double x = 0;    double y = 0;    int[][] xyValues = getValues();//   for (int i = 0; i < 2; i++) {//      for (int j = 0; j < xyValues.length; j++) {        x=xyValues[j][0];        y=xyValues[j][1];        currentSeries.add(x, y);      }//   }  }  @Override  protected void onResume() {    // TODO Auto-generated method stub    if(chartView == null){      LinearLayout layout=(LinearLayout) findViewById(R.id.chart);      chartView=ChartFactory.getLineChartView(this, dataset, renderer);      layout.addView(chartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));    }else {      chartView.setBackgroundResource(R.id.chart);      chartView.repaint();    }    super.onResume();  }  private int[][] getValues() {    // TODO Auto-generated method stub    int[][] xyValues = new int[20][2];    Random rand=new Random();    for (int i = 0; i < xyValues.length; i++) {      xyValues[i][0]=i;      xyValues[i][1]=rand.nextInt(100);    }    return xyValues;  }}

7. AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"  package="com.anjoyo.achartengine"  android:versionCode="1"  android:versionName="1.0" >  <uses-sdk    android:minSdkVersion="8"    android:targetSdkVersion="17" />  <application    android:allowBackup="true"    android:icon="@drawable/ic_launcher"    android:label="@string/app_name"    android:theme="@style/AppBaseTheme"     >    <activity      android:name="com.anjoyo.achartengine.MainActivity"      android:label="@string/app_name" >      <intent-filter>        <action android:name="android.intent.action.MAIN" />        <category android:name="android.intent.category.LAUNCHER" />      </intent-filter>    </activity>    <activity android:name=".LinearChartActivity"></activity>    <activity android:name="org.achartengine.GraphicalActivity"></activity>  </application></manifest>

希望本文所述對大家Android程序設(shè)計有所幫助。


注:相關(guān)教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 稷山县| 湟中县| 武宁县| 芒康县| 张北县| 万山特区| 陆河县| 承德市| 桦南县| 朝阳县| 林西县| 井陉县| 安陆市| 开化县| 桑植县| 尼木县| 连云港市| 尚义县| 永安市| 和政县| 松阳县| 盐边县| 乾安县| 揭阳市| 德阳市| 道孚县| 达拉特旗| 龙游县| 崇礼县| 天气| 焉耆| 昂仁县| 东莞市| 怀仁县| 达州市| 綦江县| 沈阳市| 南平市| 建平县| 和平区| 色达县|