AChartEngine绘制图形
AChartEngine是Android作图的方法之一,要使用AChartEngine,首先下载AChartEngine,按照以下方法将其jar包添加到工程中:
1、将achartengine-1.1.0.jar文件复制到工程的libs文件夹下;
2、在Eclipse中选中工程,按F5刷新;
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(),还有其他一些图形,就不一一例举了。
绘制出的图形如下:
AChartEngine绘制图形的更多相关文章
- CSS 魔法系列:纯 CSS 绘制图形(心形、六边形等)
<CSS 魔法系列>继续给大家带来 CSS 在网页中以及图形绘制中的使用.这篇文章给大家带来的是纯 CSS 绘制五角星.六角形.五边形.六边形.心形等等. 我们的网页因为 CSS 而呈现千 ...
- html5 Canvas绘制图形入门详解
html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏览器(FireFox.Chrome. ...
- html5 canvas 笔记一(基本用法与绘制图形)
<canvas> 元素 <canvas id="tutorial" width="150" height="150"> ...
- WPF2D绘制图形方法
我们先看看效果如何: xaml文件: <Window x:Class="WPF2D绘制图形方法.MainWindow" xmlns="http://schemas. ...
- 11-UIKit(Storyboard、View的基本概念、绘制图形、UIBezierPath)
目录: 1. Storyboard 2. Views 3. View的基本概念介绍 4. 绘制图形 5. UIBezierPath 回到顶部 1. Storyboard 1.1 静态表视图 1)Sec ...
- HTML5—canvas绘制图形(1)
1.canvas基础知识 canvas元素是HTML5中新增的一个重要的元素,专门用来绘制图形,不过canvas本身不具备画图的能力,在页面中放置了canvas元素,就相当于在页面中放置了一块矩形的“ ...
- 【canvas学习笔记二】绘制图形
上一篇我们已经讲述了canvas的基本用法,学会了构建canvas环境.现在我们就来学习绘制一些基本图形. 坐标 canvas的坐标原点在左上角,从左到右X轴坐标增加,从上到下Y轴坐标增加.坐标的一个 ...
- HTML5使用Canvas来绘制图形
一.Canvas标签: 1.HTML5<canvas>元素用于图形的绘制,通过脚本(通常是javascript)来完成. 2.<canvas>标签只是图形容器,必须使用脚本来绘 ...
- canvas 绘制图形
canvas 绘制图形: 注意: canvas 的宽高设置在行内,否则会使画布(canvas)产生扭曲,绘图变形: <!DOCTYPE html> <html lang=" ...
随机推荐
- Mysql跨表更新 多表update sql语句总结
Mysql跨表更新一直是大家所关心的话题,本文介绍mysql多表 update在实践中几种不同的写法 假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price:另外一张表是P ...
- lua元表Metatable
Lua 中的每个值都可以用一个 metatable. 这个 metatable 就是一个原始的 Lua table , 它用来定义原始值在特定操作下的行为. 你可以通过在 metatable 中的特定 ...
- Atitit 数据处理查询 中的异常标准化草案 jpa jdbc hb oql规范attilax总结
Atitit 数据处理查询 中的异常标准化草案 jpa jdbc hb oql规范attilax总结 Javaee6 与net 异常规范1 Jpa规范 JPA全称Java Persistence A ...
- Liferay7 BPM门户开发之37: Liferay7下的OSGi Hook集成开发
hook开发是Liferay客制扩展的一种方式,比插件灵活,即可以扩展liferay门户,也能对原有特性进行更改,Liferay有许多内置的服务,比如用hook甚至可以覆盖Liferay服务. 可作为 ...
- viewpage listview gridview加载本地大图多图OOM处理办法
很少上博客园写东西了. 最近在写公司项目,由于需要加载本地相册通过viewpager方式来加载, 最后发现直接进入界面就OOM了. 经过几天的整理最终搞定. 现在将加载本地和加载网络图片的缓存工具类贴 ...
- Java 集合 — ArrayList
ArrayList ArrayList是基于数组实现的List 是有序的 每次添加之前判断是否进行扩容 不是线程安全的. 构造方法 // 空数组 private static final Object ...
- meta标签的小拓展
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1, ...
- 解析大型.NET ERP系统 窗体、查询、报表二次开发
详细介绍Enterprise Solution 二次开发的流程步骤,主要包括数据输入窗体(Entry Form),查询(Query/Enquiry),报表(Report)三个重要的二次开发项目. 数据 ...
- Javascript函数中的高级运用
先介绍一下js中的高阶函数,所谓的高阶函数就是,一个函数中的参数是一个函数或者返回的是一个函数,就称为高阶函数. js中已经提高了一下高阶函数,使用起来非常棒,当然我们也可以自己实现,我介绍几种ES5 ...
- 汇编程序的Hello world
原文链接:http://www.orlion.ga/989/ 一.汇编程序的Hello world x86 AT&T: .data msg: .ascii "Hell ...