achartengine的使用经验及简单原理

对于静态图像,achartengine很简单

GraphicalViewgraphicalView =ChartFactory.getLineChartView(context,dataset,renderer);
IntentmultiGraphicalView=ChartFactory.getLineChartIntent(context,dataset,renderer);

有着两个函数,首先看第一个:

GraphicalViewgraphicalView =ChartFactory.getLineChartView(context,dataset,renderer);

该函数是生成一个GraphicalView的实例,GraphicalView的父类是View,我们将他

linearLayout.addView(graphicalView,LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);

就可以了.
它所要的数据是XYMultipleSeriesDatasetdataset
dataset是所有线条的集合,可以给他定义很多线条,线条的类型是XYSeries,我们只需addSeries(xySeries)就可以了
它需要有格式是XYMultipleSeriesRendererrenderer
renderer对应一个dataset,它里面的每个线条的格式是XYSeriesRenderer,每个XYSeries对应XYSeriesRenderer.

他们之间的对应关于跟添加的顺序有关.内部估计就是list去存的.如果数据集的大小和格式集的大小不同,就会报如下错误

Datasetand renderer should not be null  andshould have the same number of series

第二个跟第一个大体是一样的不过它是使用该框架自带的一个activity来显示的,所以我们要在配置文件上注册如下:

<activityandroid:name="org.achartengine.GraphicalActivity"/>

大体懂了的话,下面来讲下具体函数的使用:

对XYSeries来说有两种重载方法

xyTimeSeries.add(x, y),xyTimeSeries.add(index,x, y)

第二个方法中index是为了在某些情况下需要知道x,y的值这就需要用到索引index.但index必须从0开始
如果要画时序图则需要TimeSeries,随之的TimeSeries也会改变,add增加了一种重载add(Datex,inty)

对于XYSeriesRenderer就是一些对图像的渲染,图像的位置?如下

xyMultipleSeriesRenderer.setYAxisMax(maxY);//设置最大的纵坐标值
xyMultipleSeriesRenderer.setYLabelsAlign(Align.RIGHT);//设置Y轴标签居Y轴的方向
xyMultipleSeriesRenderer.setXTitle(xTitle);//设置X标签
xyMultipleSeriesRenderer.setYTitle(yTitle);//设置Y标签

对于动态的图像来说就是根据数据不断的改变数据集,然后调用
graphicalView.invalidate();或者graphicalView.repaint();

画其他图像原理跟上诉所讲的差不多.因为本人项目中的代码和其他代码有一定程度的耦合性,所以不便贴出

你可能感兴趣的:(Android开发,andorid画图,achartengi)