Android: Estoy utilizando la biblioteca AChartEngine para los gráficos, pero no es capaz de integrar la vista de gráfico de achartengine con XML androide?

StackOverflow https://stackoverflow.com/questions/4062161

  •  27-09-2019
  •  | 
  •  

Pregunta

Mi aplicación requiere la biblioteca gráfica y estoy usando la biblioteca gráfica achartengine. Mi aplicación requiere gráfico ser sólo 50% de la pantalla y otra parte se utiliza para mostrar alguna otra información.

¿Es posible tener archivo de recursos XML para las API de gráficos de achartengine y cómo hacerlo?

He intentado encontrar un ejemplo, pero no lo encontré. ¿Es compatible o no?

¿Fue útil?

Solución

Esto es un FAQ para AChartEngine. La aplicación de demostración AChartEngine está disponible para su descarga aquí: AChartEngine demostración

En el código fuente de demostración se puede ver un ejemplo sobre cómo incrustar un gráfico en una vista existente.

Básicamente, en el archivo .xml descriptor de la actividad, se han definido los siguientes como un marcador de posición para el gráfico. Por supuesto, otros componentes de la interfaz de usuario van de la mano con este diseño:

chartdemo / diseño / xy_chart.xml cerca de la línea 27

<LinearLayout
    android:id="@+id/chart"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="horizontal" />

Se define una variable local:

chartdemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java cerca de la línea 68

private GraphicalView mChartView;

instanciamos en el método onResume () de la actividad:

chartdemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java cerca de la línea 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();
  }
}

Siempre que se añaden nuevos datos (cuando el usuario presiona el botón "Añadir" en nuestro caso, se añade un nuevo punto en la serie actual y:

chartdemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java cerca de la línea 147

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

Otros consejos

Hay dos conjuntos de APIs en ChartFactory. Para, por ejemplo. getLineChartView() y getLineChartIntent(). Así que primero se utiliza para obtener una vista gráfica que se puede añadir a disposición personalizada y más tarde se utiliza para obtener el intento. En ejemplo anterior Dan tiene API getLineChartView() usado que devuelve un GraphicalView.

Puede escribir el XML como este ...

    

<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>

y el fragmento de código Java es

   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();
      }
    }

Así que aquí es un lugar autosuficiente para encontrar todo sobre AChartEngine . Que incluye un enlace a descarga,

  
      
  1. achartengine-1.1.0-demo-source.zip El código fuente del proyecto de demostración AChartEngine 1.1.0. 15 de mayo 15 de mayo de 8149 168 KB
  2.   
  3. achartengine-1.1.0-javadocs.zip la documentación Javadoc AChartEngine 1.1.0. 15 de mayo 15 de mayo de 3610 374 KB
  4.   1.1.0 build biblioteca binaria
  5. achartengine-1.1.0.jar El AChartEngine. 15 de mayo 15 de mayo de 5264 117 KB
  6.   

¿Cuáles son las últimas, por ahora (al publicar esta respuesta). Ahora sigue estos sencillos pasos con el fin de añadir nuevo archivo gráfico:

  • Descargar y añadir achartengine-1.1.0.jar a la sección lib de su proyecto
  • Ahora haga clic derecho en el archivo y añadirlo al camino de construcción, como en la imagen

    Añadir frasco para su proyecto

  • Ahora, como definen en las respuestas anteriores, agregar código siguiente a la clase:

    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();
          }
        }
    
    • Para obtener detalles sobre cualquier clase de AChartEngineAPI, descargar achartengine-1.1.0-javadocs.zip y abierto haciendo clic en index.html

    • achartengine-1.1.0-demo-source.zip será útil durante el desarrollo posterior deepar donde se puede tomar de referencia para todos los gráficos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top