MainActivity.java

package com.example.achartengine0;import org.achartengine.ChartFactory;import org.achartengine.GraphicalView;import org.achartengine.chart.BarChart.Type;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.view.Menu;import android.widget.LinearLayout;public class MainActivity extends Activity {private Context context;private LinearLayout layout0, layout1, layout2, layout3;private String chartName0, chartName1;private GraphicalView lView, bView;private int number;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);context = MainActivity.this;layout0 = (LinearLayout) findViewById(R.id.container0);layout1 = (LinearLayout) findViewById(R.id.container1);layout2 = (LinearLayout) findViewById(R.id.container2);layout3 = (LinearLayout) findViewById(R.id.container3);for (number = 0; number <= 2; number++)initGraphicalView(number);}public void initGraphicalView(int number) {String[] xlab = new String[] { "一月", "二月", "", "三月", "四月", "五月" };int[] value = new int[] { 20, 30, 40, 30, 10, 20 };ChartDrawing chartDrawing = new ChartDrawing("图" + number, "日期", "数值",xlab);chartDrawing.setXYSeries(value, "线" + number);chartDrawing.setXYMultipleSeriesRenderer(chartDrawing.setXYSeriesRender(), number);switch (number) {case 0:lView = ChartFactory.getLineChartView(context,chartDrawing.multiDate, chartDrawing.multiRenderer);layout0.addView(lView);break;case 1:lView = ChartFactory.getLineChartView(context,chartDrawing.multiDate, chartDrawing.multiRenderer);layout1.addView(lView);break;case 2:lView = ChartFactory.getBarChartView(context,chartDrawing.multiDate, chartDrawing.multiRenderer,Type.DEFAULT);layout2.addView(lView);break;}}}

AChartDrawing.java

package com.example.achartengine0;import org.achartengine.chart.PointStyle;import org.achartengine.model.CategorySeries;import org.achartengine.model.XYMultipleSeriesDataset;import org.achartengine.model.XYSeries;import org.achartengine.renderer.XYMultipleSeriesRenderer;import org.achartengine.renderer.XYSeriesRenderer;import android.graphics.Color;import android.graphics.Paint.Align;import android.graphics.Paint.Style;public class ChartDrawing {private String chartName;private String xTitle;private String yTitle;private String[] xLabels;public XYMultipleSeriesDataset multiDate ;//需要在构造函数中初始化,不然main函数调用时是Nullpublic XYMultipleSeriesRenderer multiRenderer ;public CategorySeries date;public ChartDrawing(String chartName,String xTitle, String yTitle, String[] xLabels ) { super();this.chartName=chartName;this.xTitle = xTitle;this.yTitle = yTitle;this.xLabels  = xLabels;multiDate=new XYMultipleSeriesDataset();multiRenderer=new XYMultipleSeriesRenderer();date=new CategorySeries(yTitle);} public void setXYSeries(int[] value,String lName){//设置点的值XYSeries xySeries=new XYSeries(lName);//某条线的点线对象for(int i=0;i<value.length;i++){xySeries.add(i+1, value[i]);}multiDate.addSeries(xySeries);//把所有点添加到数据集}public XYSeriesRenderer setXYSeriesRender(){//点线的渲染,返回  点线渲染  对象XYSeriesRenderer pointRender=new XYSeriesRenderer();pointRender.setPointStyle(PointStyle.CIRCLE);pointRender.setFillPoints(false);pointRender.setLineWidth(2f);pointRender.setColor(Color.RED); pointRender.setDisplayChartValues(true);   return pointRender;}public void setXYMultipleSeriesRenderer(XYSeriesRenderer pointRender,int number ){//坐标轴图形整体渲染。传入的参数是  点线渲染  对象multiRenderer.setChartTitle(chartName);//设置图表标题  multiRenderer.setShowGrid(true);//显示网格    multiRenderer.setPointSize(3f);//设置点的大小 ! multiRenderer.setChartTitleTextSize(20);//设置图表标题文字的大小    multiRenderer.setLabelsTextSize(15);//设置标签的文字大小  multiRenderer.setXLabelsAlign(Align.CENTER);//刻度线与刻度标注之间的相对位置关系   multiRenderer.setPanEnabled(true, false);//允许左右拖动,但不允许上下拖动.  multiRenderer.setZoomEnabled(false);//设置允许放大缩小.  multiRenderer.setXTitle(xTitle); multiRenderer.setYTitle(yTitle); multiRenderer.setMarginsColor(Color.WHITE);//设置空白区(图表区域外)背景色, 默认是黑色  /**设置整体渲染中图表区域内背景色  *  multiRenderer.setApplyBackgroundColor(true); multiRenderer.setBackgroundColor(Color.argb(0, 220, 228, 234) );  multiRenderer.setMarginsColor(Color.argb(0, 220, 228, 234));  */switch(number){case 0://最基本情形 折线图,设置Y轴坐标数10multiRenderer.setYLabels(10);multiRenderer.setZoomButtonsVisible(true);//显示放大缩小的功能栏break;case 1://自定义X轴坐标 折线图,不设置Y坐标数,隐藏Y轴! 遗留问题:自定义某个轴后,某个轴对应的网格背景就木有了。。 multiRenderer.setXLabels(0);//这样才能显示我们自定义的x轴 multiRenderer.setYLabels(0); multiRenderer.setYTitle(""); setXLabels(xLabels);break;case 2://柱形图multiRenderer.setBarSpacing(1.5);break; } multiRenderer.addSeriesRenderer(pointRender);}public void setXLabels(String[] xl){for(int i=0;i<xl.length;i++)multiRenderer.addXTextLabel(i+1, xl[i]);}     }

更多相关文章

  1. android studio listview控件基础
  2. gradle.properties使用
  3. 两种方法实现卫星式菜单
  4. Universal Image Loader for Android(安卓)说明文档
  5. 安卓编译环境设置
  6. android+SurfaceView+path+onTouchEvent画图
  7. Android切换主题
  8. Android中关于setTitle(CharSequence title)的知识总结
  9. android View未渲染时获得高度

随机推荐

  1. android中如何解析没有Key的Json数据
  2. 关于 android 中 postDelayed方法的讲解
  3. Re-installation failed 的解决办法
  4. Android Studio生成APK文件名带上版本号
  5. Dialog 样式
  6. android 状态栏操作
  7. 2000人开发讨论群,进群就送【极客学院在线
  8. android 系统属性 之 自定义属性
  9. Android:读取本地相册与相机获取图片上传
  10. Android(安卓)studio打包报错:Lint found