金沙澳门官网登录-www.js8.com-金沙澳门官网下载app

AChartEngine绘制图形

AChartEngine绘制图形。AChartEngine是Android作图的方法之一,要使用AChartEngine,首先下载AChartEngine,按照以下方法将其jar包添加到工程中:

1、将achartengine-1.1.0.jar文件复制到工程的libs文件夹下;

AChartEngine绘制图形。2、在Eclipse中选中工程,按F5刷新;

AChartEngine绘制图形。AChartEngine绘制图形。AChartEngine绘制图形。3、在Eclipse中选中libs文件夹下的achartengine-1.1.0.jar,右键点击Build Path-->Add to Build Path。

然后在Manfest文件中加入AChartEngine绘图的Activity:

<activity android:name = "org.achartengine.GraphicalActivity" />

最后是编写java文件:

package com.hzhi.chartdemo;

import org.achartengine.ChartFactory;
import org.achartengine.chart.BarChart.Type;
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.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.view.Menu;


public class MainActivity extends Activity {

    // 数据值
    double[] dx = new double[]{1.00,2.00,3.00,4.00,5.00,6.00,7.00,8.00,9.00,10.00};     
    double[] dy = new double[]{5.35,3.67,5.98,9.88,7.21,6.12,5.05,6.44,5.41,9.98};  

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
                 DrawChart();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public void DrawChart(){

        double x,y;
        // 定义XYMultipleSeriesRenderer
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        // 定义XYMultipleSeriesDataset
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
        // 定义XYSeriesRenderer
        XYSeriesRenderer xyRenderer = new XYSeriesRenderer();
        // 定义XYSeries
        XYSeries series = new XYSeries("DATA_01");

        // 将数据加入series        
        for (int i=0; i<10; i++){
            x = dx[i];
            y = dy[i];
            series.add(x,y);
        }        
        // 将series加入dataset
        dataset.addSeries(series);

        // 设置系列颜色
        xyRenderer.setColor(Color.YELLOW);
        // 设置系列点样式
        xyRenderer.setPointStyle(PointStyle.SQUARE);
        // 设置系列点宽度
        xyRenderer.setPointStrokeWidth(10);
        // 设置系列点样式
        xyRenderer.setLineWidth(5);
        // 将xyRenderer加入renderer
        renderer.addSeriesRenderer(xyRenderer);

        // 设置图表标题
        renderer.setChartTitle("AChartEngine DEMO");
        renderer.setChartTitleTextSize(30);
        // 设置图表标题X,Y轴的标题及样式
        renderer.setXTitle("X VALUES");    
        renderer.setYTitle("Y VALUES");
        renderer.setAxisTitleTextSize(30); 
        renderer.setYLabelsPadding(20);
        // 设置坐标轴数值的字体
        renderer.setLabelsTextSize(30);
        // 坐标轴的最大、最小值
        renderer.setXAxisMax(10);
        renderer.setXAxisMin(0);
        renderer.setYAxisMax(10);
        renderer.setYAxisMin(0);
        // 设置图表背景颜色
        renderer.setBackgroundColor(Color.BLACK);
        renderer.setApplyBackgroundColor(true);
        // 设置图表的Margins数组(1.上,2.左,3.下,4.右)        
        int[] m = new int[]{80,80,20,20};
        renderer.setMargins(m);
        // 是否显示图例
        renderer.setShowLegend(false);
        // 显示网格
        renderer.setShowGrid(true);
        // 网格颜色
        renderer.setGridColor(Color.WHITE);

        // 绘制曲线图
        Intent intent = ChartFactory.getLineChartIntent(this, dataset, renderer);
        startActivity(intent);

    }

}

由于显示的是org.achartengine.GraphicalActivity,所以在onCreate(Bundle savedInstanceState)方法中,删掉setContentView()语句,用绘图函数DrawChart()替代。

DrawChart()首先定义了几个变量。XYMultipleSeriesRenderer是整个图形,XYSeriesRenderer是图形里面的一个系列;XYMultipleSeriesDataset是整个图形的数据集,XYSeries是图形里面一个系列的数据集。

首先将多组成对的X值和Y值加入XYSeries,再将XYSeries加入XYMultipleSeriesDataset。然后设置XYSeriesRenderer的一些属性,再将设置好的XYSeriesRenderer加入XYMultipleSeriesRenderer。如果有多个系列,可以重复上述过程,只要保证一个XYSeries对应一个XYSeriesRenderer即可。最后设置XYMultipleSeriesRenderer的一些属性,即整个图形的属性。

设置好以后,用ChartFactory.getLineChartIntent()函数绘制曲线图。如果绘制条形图,用getBarChartIntent(),绘制饼图用getPieChartIntent(),还有其他一些图形,就不一一例举了。

绘制出的图形如下:

图片 1

 

 

本文由金沙澳门官网登录发布于金沙澳门官网下载app,转载请注明出处:AChartEngine绘制图形

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。