我的应用程序需要图形库,而我正在使用 achartengine 图形库。我的应用程序要求图形仅占屏幕的 50%,其他部分用于显示其他一些信息。
是否有可能有用于 achartengine 的图形 API 的 xml 资源文件以及如何做到这一点?
我试图找到一个例子,但没有找到。是否支持?
我的应用程序需要图形库,而我正在使用 achartengine 图形库。我的应用程序要求图形仅占屏幕的 50%,其他部分用于显示其他一些信息。
是否有可能有用于 achartengine 的图形 API 的 xml 资源文件以及如何做到这一点?
我试图找到一个例子,但没有找到。是否支持?
这是 AChartEngine 的常见问题解答。AChartEngine 演示应用程序可在此处下载:AChartEngine 演示
在演示源代码中,您可以看到有关如何将图表嵌入现有视图的示例。
基本上,在活动描述符 .xml 文件中,我们定义了以下内容作为图表的占位符。当然,其他用户界面组件与此布局一起使用:
27 号线附近的 ChartDemo/layout/xy_chart.xml
<LinearLayout
android:id="@+id/chart"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal" />
我们定义一个局部变量:
ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java 68 号线附近
private GraphicalView mChartView;
我们在活动的 onResume() 方法上实例化它:
ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java 163 号线附近
protected void onResume() {
super.onResume();
if (mChartView == null) {
LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
mChartView = ChartFactory.getLineChartView(this, mDataset,
mRenderer);
layout.addView(mChartView, new LayoutParams
(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
...
} else {
mChartView.repaint();
}
}
每当添加新数据时(在我们的例子中,当用户按下“添加”按钮时,当前系列中就会添加一个新点,并且:
ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java 147 号线附近
if (mChartView != null) {
mChartView.repaint();
}
中有两组 API ChartFactory
。例如。getLineChartView()
和getLineChartIntent()
。所以前者用于获取可以添加到自定义布局中的图形视图,后者用于获取意图。在上面的示例中,Dan 使用getLineChartView()
了返回GraphicalView
.
你可以这样写你的xml...
<LinearLayout
android:layout_below="@+id/btn"
android:id="@+id/chart" android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1">
</LinearLayout>
java代码片段是
protected void onResume() {
super.onResume();
if (mChartView == null) {
LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
mChartView = ChartFactory.getBarChartView(this,getBarDemoDataset(values),renderer,Type.DEFAULT);
layout.addView(mChartView);
} else {
mChartView.repaint();
}
}
所以这里是一个自给自足的地方,可以找到关于AChartEngine的所有信息。其中包括下载链接,
- achartengine-1.1.0-demo-source.zip AChartEngine 1.1.0 演示项目源代码。5 月 15 日 5 月 15 日 168 KB 8149
- achartengine-1.1.0-javadocs.zip AChartEngine 1.1.0 javadoc 文档。5 月 15 日 5 月 15 日 374 KB 3610
- achartengine-1.1.0.jar AChartEngine 1.1.0 二进制构建库。5 月 15 日 5 月 15 日 117 KB 5264
现在是最新的(发布此答案时)。现在按照这些简单的步骤添加新的图表文件:
现在右键单击文件并将其添加到构建路径,如图所示
现在按照前面答案中的定义,将以下代码添加到您的类中:
private GraphicalView mChartView;
private XYMultipleSeriesDataset dataset;
private XYMultipleSeriesRenderer renderer;
private BarChart.Type type;
protected void onResume() {
super.onResume();
if (mChartView == null) {
LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
/*getBarChartView(android.content.Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, BarChart.Type type)
Creates a bar chart view.*/
mChartView = ChartFactory.getBarChartView(this, dataset, renderer, type);//tView(this,getBarDemoDataset(values),renderer,Type.DEFAULT);
layout.addView(mChartView);
} else {
mChartView.repaint();
}
}
要获取任何 AChartEngineAPI 类的详细信息,请下载achartengine-1.1.0-javadocs.zip并通过单击index.html打开
achartengine-1.1.0-demo-source.zip将有助于进一步深入开发,您可以参考所有图表