以下是我的问题:我正在使用AFreeChart
在我的活动中显示图表。我使用AFreeChart
的原因是因为我首先使用JFreeChart
完成了此图表,之后意识到它与Android不兼容。
因此,使用AFreeChart
,我可以使用完全相同的代码创建相同的图表,但我不知道如何在View
上显示它。
我在这里创建图表:
private void creerGraphique(){
//Here I have the creation of the DateSet
AFreeChart chart = ChartFactory.createXYLineChart(
"Mois", // Title
"Jours", // x-axis Label
"Repetitions", // y-axis Label
graph, // Dataset
PlotOrientation.VERTICAL, // Plot Orientation
true, // Show Legend
true, // Use tooltips
false // Configure chart to generate URLs?
);
}
我想在这里使用它:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.graphique);
this.stockTableau();
this.creerGraphique();
//HERE: How can I display it since it's already created
}
我下载了AFreeChart
演示代码,但是使用了不在包装上的功能,因此我也无法使用它。
我感谢你的帮助。
PS:我不是英国人,所以我希望我的问题很清楚,不要犹豫,问我更多细节。答案 0 :(得分:3)
您是否看过AFreeChart中的样本?这很简单,看看他们为这张图表所做的事情:
他们扩展了一个DemoView,它基本上是一个带有setChart方法的Android视图,并将图表传递给视图。
因此,要么扩展DemoView,要么创建自己的等效项,如果你不需要其中的所有内容并按照示例进行操作!
答案 1 :(得分:0)
同样值得注意的是,使用上面粘贴的代码,当你想要绘制时,调用图表的draw()方法会很有帮助。
举个简单的例子,如果你使用的是SurfaceView,你可以创建一个如下所示的方法:
private void drawChart(AFreeChart chart, ChartRenderingInfo info) {
getHolder.lockCanvas();
chart.draw(canvas, area, info);
getHolder().unlockCanvasAndPost(canvas);
}
已设置'画布'和'区域'。
如果你想要一个非常简单的实现,你不想使用上面讨论的DemoView,这很有用。