AChartEngine条状图

来源:互联网 发布:粒子群算法流程 编辑:程序博客网 时间:2024/04/28 19:23



package com.example.achatdemotest;import org.achartengine.ChartFactory;import org.achartengine.GraphicalView;import org.achartengine.model.SeriesSelection;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.graphics.Paint.Align;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;public class TestActivity extends Activity {private TextView tvMsg;private LinearLayout chart;private GraphicalView view;// 前后必须各留一组空白资料, 否则bar会在轴上private String[] Top10ErrCode = { "", "ADFU1", "MBPW2", "ABCDE", "BLFU1","LCVD3", "ADDK1", "CMFU3", "LCCR2", "QBLE1", "SPNS1", "" };private int[] Top10ErrQty = { 0, 19, 17, 10, 15, 11, 18, 7, 15, 2, 0 };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tvMsg = (TextView) findViewById(R.id.tvMsg);chart = (LinearLayout) findViewById(R.id.chart);try {GraphicalView view = getBarChart("PQC Top 10 ErrCode","ErrCode","<a href='http://www.it165.net/pro/pkqt/' target='_blank' class='keylink'>QT</a>Y",Top10ErrCode, Top10ErrQty);chart.addView(view);System.out.println("zhege zhi xing le ");} catch (Exception e) {tvMsg.setText(e.toString());}}private GraphicalView getBarChart(String chartTitle, String XTitle,String YTitle, String[] x, int[] y) {XYSeries Series = new XYSeries(YTitle);for (int i = 0; i < y.length; i++) {Series.add(i, y[i]);}XYMultipleSeriesDataset Dataset = new XYMultipleSeriesDataset();Dataset.addSeries(Series);XYMultipleSeriesRenderer Renderer = new XYMultipleSeriesRenderer();Renderer.setChartTitle(chartTitle);Renderer.setChartTitleTextSize(20);Renderer.setXTitle(XTitle);Renderer.setYTitle(YTitle);Renderer.setApplyBackgroundColor(true);Renderer.setBackgroundColor(Color.WHITE);Renderer.setShowGrid(true);Renderer.setXLabelsAlign(Align.CENTER);Renderer.setYLabelsAlign(Align.CENTER);Renderer.setBarSpacing(0.5f);Renderer.setXLabelsAngle(-25); // 设定X轴文字倾斜度Renderer.setXLabels(0); // 设定X轴不显示数字, 改以程式设定文字Renderer.setPanEnabled(true, false);// 允许左右拖动,但不允许上下拖动.Renderer.setClickEnabled(true);// 是否可以点击事件for (int i = 0; i < x.length; i++) {Renderer.addXTextLabel(i, x[i]);}XYSeriesRenderer yRenderer = new XYSeriesRenderer();yRenderer.setColor(Color.GREEN);yRenderer.setDisplayChartValues(true);Renderer.addSeriesRenderer(yRenderer);view = ChartFactory.getBarChartView(getBaseContext(), Dataset,Renderer, org.achartengine.chart.BarChart.Type.DEFAULT);view.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSeriesSelection seriesSelection = view.getCurrentSeriesAndPoint();if (seriesSelection != null) {Toast.makeText(TestActivity.this,"点击第" + seriesSelection.getPointIndex() + "个点",Toast.LENGTH_SHORT).show();}}});return view;}}


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"android:orientation="vertical"    tools:context=".MainActivity" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="我的图表"        android:textColor="@android:color/holo_red_dark"        tools:ignore="NewApi"        android:id="@+id/tvMsg" />    <LinearLayout         android:id="@+id/chart"        android:orientation="horizontal"        android:layout_width="fill_parent"        android:layout_height="0dip"        android:layout_weight="1"/></LinearLayout>



Dataset和Render参数介绍 :http://blog.csdn.net/lk_blog/article/details/7645661

0 0