安卓:我正在使用 AChartEngine 图形库,但无法将 achartengine 的图形视图与 android xml 集成?
-
27-09-2019 - |
题
我的应用程序需要图形库,并且我正在使用 achartengine 图形库。我的应用程序要求图形仅占屏幕的 50%,其他部分用于显示一些其他信息。
是否可以为 achartengine 的图形 API 提供 xml 资源文件以及如何做到这一点?
我试图找到一个例子,但没有找到。支持还是不支持?
解决方案
这是一个AChartEngine FAQ。 该AChartEngine演示应用程序可供下载在这里: AChartEngine演示
在演示的源代码可以看到,关于如何嵌入图表到现有的视图的示例。
基本上,在活动描述符.xml文件,我们已经定义了以下作为图表的占位符。当然,其他用户界面组件与该布局一起去:
ChartDemo /布局/ xy_chart.xml近27行的
<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();
}
其他提示
有两组ChartFactory
的API。对于如。 getLineChartView()
和getLineChartIntent()
。因此,前者用于获取可添加到自定义布局,后来被用来获取意图的图形视图。在上面的例子中丹已经用getLineChartView()
API返回一个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-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
目前是最新的(发布此答案时)。现在请按照以下简单步骤添加新的图表文件:
- 下载并添加 achartengine-1.1.0.jar 到您项目的 lib 部分
现在右键单击文件并将其添加到构建路径,如图所示
现在,按照前面答案中的定义,将以下代码添加到您的类中:
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 并通过点击打开 索引.html
achartengine-1.1.0-demo-source.zip 在进一步的深度开发中将很有帮助,您可以参考所有图表