有很多种实现的方法,我就把我写的一个例子直接拿出来吧= ,嘿嘿其实也是当时参考别人的(自己的图。多点的是上半部分的,下面的那个是跟X轴对应点数的)

  
import java.util.ArrayList;import java.util.List;import org.achartengine.ChartFactory;import org.achartengine.GraphicalView;import org.achartengine.chart.PointStyle;import org.achartengine.chart.BarChart.Type;import org.achartengine.renderer.SimpleSeriesRenderer;import org.achartengine.renderer.XYMultipleSeriesRenderer;import org.achartengine.renderer.XYSeriesRenderer;import android.content.Context;import android.content.Intent;import android.graphics.Color;import android.graphics.Paint.Align;import android.view.View;public class WS_zhexian extends AbstractDemoChart {public String getName() {return "TestAChart";}public String getDesc() {return "Test";}public GraphicalView CreateView(Context context){String[] titles = new String[] { "COD达标率 ", "氨氮达标率"};// x轴的值List<double[]> x = new ArrayList<double[]>();for (int i = 0; i < titles.length; i++) {x.add(new double[] {1,2,3,4,5,6,7,8,9});   //从X周的 0算起来 总共有几个点}// y轴的值List<double[]> values = new ArrayList<double[]>();values.add(new double[] { 10.3, 12.5, 13.8, 24.5, 30.4, 40.4, 50.4, 55.5, 60.6});values.add(new double[] { 10, 15.6, 20.5, 18.6, 25.7, 30.6, 44.5, 55.5 ,64.8});int[] colors = new int[] { Color.BLUE, Color.GREEN};PointStyle[] styles = new PointStyle[] { PointStyle.POINT,PointStyle.POINT };XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles);int length = renderer.getSeriesRendererCount();for (int i = 0; i < length; i++) {((XYSeriesRenderer) renderer.getSeriesRendererAt(i)).setFillPoints(true);}renderer.setBackgroundColor(Color.WHITE);renderer.setApplyBackgroundColor(true);renderer.setFitLegend(true);// 图表与屏幕四边的间距颜色renderer.setMarginsColor(Color.argb(0, 0xF3, 0xF3, 0xF3));renderer.setChartTitleTextSize(30);renderer.setAxisTitleTextSize(10);// renderer.setLegendHeight(50);renderer.setLegendTextSize(10);                    // 图例文字的大小--下面分类的字体大小renderer.setMargins(new int[] { 50, 50, 20, 30 }); // 图离上做下右的间距,貌似没用// x、y轴上刻度颜色renderer.setXLabelsColor(Color.BLACK);renderer.setYLabelsColor(0, Color.BLACK);setChartSettings(renderer, "", "","", 1, 9 , 0, 90, Color.BLACK, Color.BLACK);// 轴上数字的数量renderer.setXLabels(0);renderer.setYLabels(9);/** *  本项目 -  传入 第一个点 为 X轴的0坐标 为上一天的点数,所以不能为0 ,    第2个点位当天点数 */    renderer.addXTextLabel(2, "6月1号");    renderer.addXTextLabel(3, "6月2号");    renderer.addXTextLabel(4, "6月3号");    renderer.addXTextLabel(5, "6月4号");    renderer.addXTextLabel(6, "6月5号");    renderer.addXTextLabel(7, "6月6号");    renderer.addXTextLabel(8, "6月7号");    renderer.addXTextLabel(9, "6月8号");    renderer.setShowGrid(true);    // 是否显示网格    renderer.setXLabelsAlign( Align.RIGHT);        renderer.setYLabelsAlign(Align.RIGHT); renderer.setPanEnabled(false);   //图表是否可以移动         renderer.setZoomEnabled(true);   //图表是否可以缩放         renderer.setLegendHeight(100);   // 图标文字距离底边的高度        renderer.setZoomButtonsVisible(false);   // 设置放大缩小按钮是否可见GraphicalView view= ChartFactory.getLineChartView(context, buildDataset(titles, x, values), renderer);return view;  //返回View对象}@Overridepublic Intent execute(Context context) {// TODO Auto-generated method stubreturn null;}}


也可以返回 intent对象

Intent intent = ChartFactory.getLineChartIntent(context,buildDataset(titles, x, values), renderer,"Average temperature");

然后另外一个类得到intent跳转进来就好了呢


intent = new zhexian_AChart_quandian().execute(this);        startActivity(intent);


得到View对象后在另外一个你自己定义的布局中显示就OK了:

           //--------------------------------------------------------------------------------------------------------------           // ------------------ 调用这个类的方法后 会返回1个 View对象,这样你就可以把这个View放到你自己的布局中啦,比如:---           //----------------------------------------------------------------------------------------------------------------             LinearLayout line1 = (LinearLayout) findViewById(R.id.zhexian);         GraphicalView lineView1 = new AAMy_zhexian().CreateView(this);         line1.addView(lineView1, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); 

上面的是 跟 X轴对应点数的, 是效果图的 下半部分。

下面的是 跟X轴多点的 ,是效果图的上半部分。

import java.util.ArrayList;import java.util.List;import org.achartengine.ChartFactory;import org.achartengine.GraphicalView;import org.achartengine.chart.PointStyle;import org.achartengine.chart.BarChart.Type;import org.achartengine.renderer.SimpleSeriesRenderer;import org.achartengine.renderer.XYMultipleSeriesRenderer;import org.achartengine.renderer.XYSeriesRenderer;import android.content.Context;import android.content.Intent;import android.graphics.Color;import android.graphics.Paint.Align;import android.view.View;
// 这个是  一天记录 2个数据的 所以8天就 - 16个点(当时要求第一个点 从中间开始 晕- -,当然可以自己设置从 0.0开始)public class AAMy_zhexian extends AbstractDemoChart {public String getName() {return "TestAChart";}public String getDesc() {return "*************TestAChart***************";}
public GraphicalView CreateView(Context context){// 每个item的titleString[] titles = new String[] { "COD达标率 ", "氨氮达标率", "污染物排放浓度 COD","Skiathos" };// x轴的值List<double[]> x = new ArrayList<double[]>();for (int i = 0; i < titles.length; i++) {x.add(new double[] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16});  //从X周的 0算起来 总共有几个点}// y轴的值List<double[]> values = new ArrayList<double[]>();values.add(new double[] { 12.3, 12.5, 13.8, 16.8, 20.4, 24.4, 26.4,26.1,12.3, 12.5, 13.8, 16.8, 20.4, 24.4, 26.4,26.1});values.add(new double[] { 10, 10, 12, 15, 20, 24, 26, 26 , 10, 10, 12, 15, 20, 24, 26, 26});values.add(new double[] { 5, 5.3, 8, 12, 17, 22, 24.2, 24 ,5, 5.3, 8, 12, 17, 22, 24.2, 24 });values.add(new double[] { 9, 10, 11, 15, 19, 23, 26, 25 , 9, 10, 11, 15, 19, 23, 26, 25});int[] colors = new int[] { Color.BLUE, Color.GREEN, Color.CYAN,Color.YELLOW };// 点的样式   DIAMOND正方形     TRIANGLE 三角形  SQUARE 圆形PointStyle[] styles = new PointStyle[] { PointStyle.POINT,PointStyle.POINT, PointStyle.POINT, PointStyle.POINT };//Renderer 就是渲染器,设置图表显示的一些特征,比如图表的大小,标题,坐标轴的颜色,背景颜色等XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles);int length = renderer.getSeriesRendererCount();// 点是空心还是实心for (int i = 0; i < length; i++) {((XYSeriesRenderer) renderer.getSeriesRendererAt(i)).setFillPoints(true);}// 图表部分的背景颜色//renderer.setBackgroundColor(Color.parseColor("#f3f3f3"));renderer.setBackgroundColor(Color.WHITE);renderer.setApplyBackgroundColor(true);//设置显示点上的值//renderer.setDisplayChartValues(true);//renderer.setChartValuesTextSize(18);renderer.setFitLegend(true);//调整合适的位置// 图表与屏幕四边的间距颜色renderer.setMarginsColor(Color.argb(0, 0xF3, 0xF3, 0xF3));renderer.setChartTitleTextSize(30);renderer.setAxisTitleTextSize(10);// renderer.setLegendHeight(50);renderer.setLegendTextSize(10);                    // 图例文字的大小--下面分类的字体大小renderer.setMargins(new int[] { 50, 50, 20, 30 }); // 图离上做下右的间距,貌似没用// x、y轴上刻度颜色renderer.setXLabelsColor(Color.BLACK);renderer.setYLabelsColor(0, Color.BLACK);// 最后两个参数代表轴的颜色和轴标签的颜色     1-9  X是 1到9   0-90 Y 0到90//setChartSettings(renderer, "图标上方的文字", "图标下方的文字",//"图标左侧的文字", 0.0, 16, 0, 90, Color.BLACK, Color.BLACK);setChartSettings(renderer, "", "","", 0.0, 16, 0, 90, Color.BLACK, Color.BLACK);     // 轴上数字的数量    renderer.setXLabels(0);    renderer.setYLabels(9);    // 自定义横轴 X的标识     renderer.addXTextLabel(2, "6月1号");    renderer.addXTextLabel(4, "6月2号");    renderer.addXTextLabel(6, "6月3号");    renderer.addXTextLabel(8, "6月4号");    renderer.addXTextLabel(10, "6月5号");    renderer.addXTextLabel(12, "6月6号");    renderer.addXTextLabel(14, "6月7号");    renderer.addXTextLabel(16, "6月8号");     // renderer.setBarSpacing(1);         // 是否显示网格    // renderer.setPanLimits(new double[] { -10, 20, -10, 40 }); //设置拖动时X轴Y轴允许的最大值最小值.    // renderer.setZoomLimits(new double[] { -10, 20, -10, 40 });//设置放大缩小时X轴Y轴允许的最大最小值.    renderer.setShowGrid(true);     // x或y轴上数字的方向,相反的。    renderer.setXLabelsAlign( Align.RIGHT);        renderer.setYLabelsAlign(Align.RIGHT);    renderer.setPanEnabled(false);   //图表是否可以移动            renderer.setZoomEnabled(true);   //图表是否可以缩放            renderer.setLegendHeight(100);   // 图标文字距离底边的高度                   //renderer.setZoomEnabled(true, false);  拖动的时候 Y轴不动           //renderer.setPanEnabled(true, false);   拖动的时候 X轴不动            renderer.setZoomButtonsVisible(false);   // 设置放大缩小按钮是否可见  // renderer.setPanLimits(new double[] { -10, 20, -10, 40 });   // renderer.setZoomLimits(new double[] { -10, 20, -10, 40 });      /** 1、ChartFactory               传入Renderer,Dataset的参数,              然后用getXXXChartIntent(Context context,XYMutilpleSeriesRenderer,XYMutilpleSeriesDataset)方法进行图表的显示2、XYMutilpleSeriesRenderer               用于进行绘制的设置,添加的Renderer对象,用于定义绘制的点集合设置,注意数量要和Dataset添加的XYseries一致!!!     */        //Intent intent = ChartFactory.getLineChartIntent(context,//buildDataset(titles, x, values), renderer,//"Average temperature");//ChartFactory.getBarChartView(context, dataset, renderer, type); //把图表变成 View的方法, GraphicalView view= ChartFactory.getLineChartView(context, buildDataset(titles, x, values), renderer);return view;}@Overridepublic Intent execute(Context context) {// TODO Auto-generated method stubreturn null;}
}
       
   

更多相关文章

  1. [置顶] Cocos2d android(一个小时学会FlyppyBird开发)
  2. Android(安卓)的 CRUD
  3. Android(安卓)悬浮窗的实现源码
  4. android attr.xml 怎么在主工程中设置library项目中背景或者其他
  5. Android用户界面程序设计示例
  6. PreferenceActivity 参数设置UI的使用
  7. 修改checkbox框颜色
  8. Android(安卓)3.1 r1 API中文文档(6)——ImageView
  9. 小记 ScrollView 隐藏 里面空间填充后再次设置显示,界面会自动往

随机推荐

  1. Android(安卓)访问HTTP资源
  2. Android(安卓)canvas绘图基础之运动的时
  3. 【Android】常量DEFAULT_KEYS_SHORTCUT
  4. 关于Android开发过程中,createImage的一些
  5. AndroidStudio在Ubuntu13.10的64位系统报
  6. basic4android 开发 推送功能
  7. 文件管理器-android源代码
  8. android java编程注意事项
  9. Android(安卓)5.0系统 style 默认窗口控
  10. Android学习心得(四)——互联网应用