Android:我正在使用AChartEngine库的graphics,但不能将achartengine的graphics视图与android xml?

我的应用程序需要图库,我正在使用achartengine图库。 我的应用程序要求graphics只有屏幕的50%,其他部分用于显示其他信息。

可能有用于achartengine的graphicsAPI的xml资源文件,以及如何做到这一点?

我试图find一个例子,但没有find它。 它是否支持?

Solutions Collecting From Web of "Android:我正在使用AChartEngine库的graphics,但不能将achartengine的graphics视图与android xml?"

这是AChartEngine的常见问题。 AChartEngine演示应用程序可以在这里下载: AChartEngine演示

在演示源代码中,您可以看到如何将图表embedded现有视图的示例。

基本上,在活动描述符.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" /> 

我们定义一个局部variables:

第68行附近的ChartDemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java

 private GraphicalView mChartView; 

我们在activity的onResume()方法上实例化它:

ChartDemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java在Line 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(); } } 

每当添加新数据(当用户按下我们的“添加”button时,在当前系列中添加一个新点,并且:

第147行附近的ChartDemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java

 if (mChartView != null) { mChartView.repaint(); } 

ChartFactory有两套API。 例如。 getLineChartView()getLineChartIntent() 。 所以以前是用来获得一个graphics视图,可以添加到自定义的布局,以后用来获得意图。 在上面的例子中,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(); } } 

所以这里是find所有关于AChartEngine的自给自足的地方。 其中包括链接下载,

  1. achartengine-1.1.0-demo-source.zip AChartEngine 1.1.0演示项目的源代码。 5月15日15 168 KB 8149
  2. achartengine-1.1.0-javadocs.zip AChartEngine 1.1.0 javadoc文档。 5月15日15 374 KB 3610
  3. achartengine-1.1.0.jar AChartEngine 1.1.0二进制构build库。 5月15日15 117 KB 5264

哪些是最新的(当张贴这个答复时)。 现在按照这些简单的步骤来添加新的图表文件:

  • 下载并将achartengine-1.1.0.jar添加到项目的lib部分
  • 现在右键单击文件并将其添加到构buildpath,如图像

    将jar添加到您的项目

  • 现在按以前的答案定义,将下面的代码添加到你的类中:

     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将在进一步的深度开发中有所帮助,您可以参考所有图表