顾名思义,AChartEngine是一个图表库,可以在Android应用程序中使用。
它支持1.6及更高版本的所有Android SDK版本。 1.6版仅提供基于平移和按钮的缩放,而2.1版和更高版本增加了对捏缩放的支持,因为该功能已在Android SDK 2.x和更高版本中提供。 不久前,当AChartEngine放弃了对低于2.1的旧版Android SDK的支持时,许多用户在发布后几天就要求它。 当时,根据此处提供的官方Android平台发行版,在全球范围内,仍有大约5%的设备运行的版本早于2.x。
使用AChartEngine将图表添加到Android应用程序中,就像将achartengine-xyzjar添加到应用程序类路径并开始根据其API进行编码一样简单。 当前的稳定版本是1.0.0,正在开发的版本是1.1.0。 jar文件只有110 KB的大小,如今这是一个很小的足迹。 但是,AChartEngine支持许多图表类型。
一点历史
在2008年末,Android开发人员已经在寻找图表/图形/绘图库。 那时还没有这样的免费/开源解决方案。
我开始评估Android的乐趣,并在开发了一些需要作图的Android应用程序之后,我决定可以使用AChartEngine的名称开源图表代码。 0.2.0版于2009年3月发布,是第一个Android开源图表库。 当时,Android SDK的版本为1.1。
特征
AChartEngine支持三种主要的图表类型:
- XY图表–在2轴上显示数据(线,立方线,面积,条形图,散点图,气泡,范围(高-低))
- “圆形”图表–馅饼,甜甜圈,刻度盘
- 组合图表–可以显示XY图表的组合
要快速浏览一些AChartEngine演示应用程序屏幕截图,请访问官方网站和AChartEngine Google代码页面
整体课堂设计
下图显示了处理图表可视化呈现的类的组织方式。
- AbstractChart类描述了所有图表共享的行为,包括图形背景,图例,标题等。
- XYChart类描述XY图表类型共有的状态和行为,例如轴,标签的呈现等。
- RoundChart与XYChart类似,但是对于具有圆形形状的图表类型。
设计组成
整个设计不仅限于视觉/视图部分。 还有更多组成部分有助于整体情况。
- 模型–数据集/一系列数据。
- 视图–如上所述。
- 渲染器–帮助定制图表外观(颜色,字体,轴,标签,格式等)。
- ChartFactory –获取数据集的实例和渲染器的实例,并返回嵌入到Intent(对于图表填充一个Activity的情况)或View(当图表是Activity的一部分时)的所需图表,以及其他小部件)。
- 工具–用于平移和缩放的交互工具。
代码样例
下面的代码显示了如何初始化图表并将其添加到活动的简单示例。 软件包声明和导入已删除,以保持样本较小。
public class SampleChart extends Activity {
private GraphicalView mChart;
private XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset();
private XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
private XYSeries mCurrentSeries;
private XYSeriesRenderer mCurrentRenderer;
private void initChart() {
mCurrentSeries = new XYSeries('Sample Data');
mDataset.addSeries(mCurrentSeries);
mCurrentRenderer = new XYSeriesRenderer();
mRenderer.addSeriesRenderer(mCurrentRenderer);
}
private void addSampleData() {
mCurrentSeries.add(1, 2);
mCurrentSeries.add(2, 3);
mCurrentSeries.add(3, 2);
mCurrentSeries.add(4, 5);
mCurrentSeries.add(5, 4);
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
protected void onResume() {
super.onResume();
LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
if (mChart == null) {
initChart();
addSampleData();
mChart = ChartFactory.getCubeLineChartView(this, mDataset, mRenderer, 0.3f);
layout.addView(mChart);
} else {
mChart.repaint();
}
}
}
为了使上面的示例工作,必须定义一个简单的布局文件,该文件必须包含带有android:id ='@ + id / chart'的LinearLayout。
应用领域
所有类型的应用程序都使用AChartEngine进行图表渲染。 appbrain.com Android市场指出,已发布应用程序总数(0.5万个)中有0.52%使用AChartEngine,这意味着其中有3000多个正在使用AChartEngine。
使用AChartEngine的最受欢迎的应用程序列表:
- MotoACTV –摩托罗拉开发的健身工具,已预先安装在其设备上
- 心电图查看器,生物线束应用
- 路径追踪器,健身,自行车应用
- 金融,商业应用
- 其他,…
资源资源
- 官方网站http://achartengine.org
- Google代码网站,提供可下载的jar,javadocs和演示应用程序,问题跟踪工具和SVN源代码http://code.google.com/p/achartengine
- 在YouTube上搜索“ AChartEngine”。 有很多有用的视频教程。
- 浏览stackoverflow.com以查找解决方案或发布问题。
- 在AChartEngine Google网上论坛上注册并发表想法。
- 访问AChartEngine Facebook页面facebook.com/achartengine
- 通过contact@achartengine.org与我们联系
欢迎贡献者
在您的简历中,为开源项目做贡献可能看起来不错。 AChartEngine是一个开源项目,因此它是社区努力的结果。 对AChartEngine做出贡献的建议路径可能是:
- 从SVN签出源代码并尝试理解它。
- 查看未解决的问题,然后尝试解决其中的一些问题。 完成后,提供补丁。
- 要求提交者权利。
- 在StackOverflow或其他网站上回答问题。
参考: AChartEngine – Java出现日历博客上来自JCG合作伙伴 Attila-Mihaly Balazs的Android应用程序图表库 。
翻译自: https://www.javacodegeeks.com/2012/12/achartengine-a-charting-library-for-android-applications.html