a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統 > Android > 正文

Android中使用achartengine生成圖表的具體方法

2020-04-11 11:58:16
字體:
來源:轉載
供稿:網友

今天在做項目的時候用到了圖表功能,記錄下來

achartengine是google的一個開源項目,可以在https://code.google.com/p/achartengine/ 下載技術文檔,jar包以及項目源代碼

demo下載:https://code.google.com/p/achartengine/downloads/list

一、餅狀圖

新建工程,添加achartengine  jar包

PieChart.java

復制代碼 代碼如下:

package com.meritit.footlottery.view;

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.graphics.Color;
import android.view.View;

public class PieChart {
 public View 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("勝 ", 30);
  categorySeries.add("負", 20);
  categorySeries.add("平", 60);
  return ChartFactory
    .getPieChartView(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); 
  }
  //顯示標簽
  renderer.setShowLabels(true);
  //不顯示底部說明
  renderer.setShowLegend(false);
  //設置標簽字體大小
  renderer.setLabelsTextSize(15);
  renderer.setLabelsColor(Color.BLACK);
  renderer.setZoomEnabled(false);
  renderer.setPanEnabled(false);
  return renderer;
 }
}

使用方法

復制代碼 代碼如下:

//View pieChart = new PieChart().execute(this);
//chartArea.addView(pieChart);

獲得一個View對象,在需要添加的布局下面直接addView

二、柱狀圖

復制代碼 代碼如下:

package com.meritit.footlottery.view;

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.DefaultRenderer;
import org.achartengine.renderer.SimpleSeriesRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer;

import com.meritit.footlottery.R;

import android.content.Context;
import android.graphics.Color;
import android.view.View;

public class BarChart {
 private Context context;
 public View execute(Context context) {
  this.context = context;
  return ChartFactory
    .getBarChartView(context, getBarDemoDataset(), getBarDemoRenderer(), Type.DEFAULT);
 }

    /**
     * XYMultipleSeriesDataset 類型的對象,用于提供圖表需要表示的數據集,
     * 這里我們用 getBarDemoDataset 來得到它。
     */ 
    private XYMultipleSeriesDataset getBarDemoDataset() { 
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
        final int nr = 10; 
        Random r = new Random(); 
        for (int i = 0; i < 3; i++) { 
            CategorySeries series = new CategorySeries("球隊 " + (i + 1)); 
            for (int k = 0; k < nr; k++) { 
                series.add(100 + r.nextInt() % 100); 
            } 
            dataset.addSeries(series.toXYSeries()); 
        } 
        return dataset; 
    }

    /**
     * XYMultipleSeriesRenderer 類型的對象,用于提供圖表展現時的一些樣式,
     * 這里我們用 getBarDemoRenderer 方法來得到它。
     * getBarDemoRenderer 方法構建了一個 XYMultipleSeriesRenderer 用來設置2個系列各自的顏色
     */ 
    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);
        r = new SimpleSeriesRenderer(); 
        r.setColor(Color.RED); 
        renderer.addSeriesRenderer(r);
        renderer.setApplyBackgroundColor(true);
        renderer.setBackgroundColor(Color.TRANSPARENT);
        renderer.setMarginsColor(context.getResources().getColor(R.color.main_background_color));
        renderer.setZoomEnabled(false, false);
        renderer.setPanEnabled(false, false);
        renderer.setLabelsTextSize(15);
  renderer.setLabelsColor(Color.BLACK);
        setChartSettings(renderer); 
        return renderer; 
    }

    /**
     * setChartSettings 方法設置了下坐標軸樣式。
     */ 
    private void setChartSettings(XYMultipleSeriesRenderer renderer) { 
        renderer.setChartTitle("戰績分析"); 
        renderer.setXTitle("橫坐標"); 
        renderer.setYTitle("縱坐標"); 
        renderer.setXAxisMin(0.5); 
        renderer.setXAxisMax(10.5); 
        renderer.setYAxisMin(0); 
        renderer.setYAxisMax(210); 
    } 
}

上面代碼部分解釋:
renderer.setApplyBackgroundColor(true);  //設置背景使能,為true下面的設置背景才有效

renderer.setBackgroundColor(Color.TRANSPARENT);  //設置背景

renderer.setMarginsColor() //設置周圍區域顏色

renderer.setZoomEnabled(false, false);  //設置是否能放大

renderer.setPanEnabled(false, false);  //設置是否可以移動

renderer.setLabelsTextSize(15);  //設置標簽文字大小
renderer.setLabelsColor(Color.BLACK);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 在线观看免费毛片视频 | 日韩一区二区三区在线 | 久久久成人av | 国产黄色大片 | 一区二区色 | 国产一区二区三区视频观看 | 99视频在线免费观看 | 久久免费精品 | 久久手机在线视频 | 黄色毛片网站 | 中文字幕色婷婷在线视频 | 国产精品精品视频一区二区三区 | 日韩精品区 | 国产一区二区三区久久久久久久 | 亚洲大成色 | 古装三级在线播放 | 欧美日本韩国一区二区三区 | 欧美日韩国产精品一区 | 中文字幕一区二区三区四区 | 综合国产 | 日韩久久久久 | 久久久久国产视频 | 久久99精品久久久 | 国产高清小视频 | 精品一区二区三区四区五区 | 久久99精品国产91久久来源 | 好看的一级毛片 | 97国产在线视频 | 久久韩日 | 成人黄色大片 | 亚洲精品视频在线观看免费视频 | 一区影院 | 婷婷久久综合 | 国产在线精品成人免费怡红院 | 亚洲一区免费视频 | 国产欧美精品一区二区三区四区 | 国产日韩中文字幕 | 荡女妇边被c边呻吟视频 | 亚洲精选一区 | 中文字幕在线精品 | 美女黄网站视频免费 |