Android: Sto usando biblioteca AChartEngine per i grafici, ma non in grado di integrare vista grafico di achartengine con XML Android?

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

  •  27-09-2019
  •  | 
  •  

Domanda

La mia applicazione richiede biblioteca grafico e sto usando biblioteca grafico achartengine. La mia applicazione richiede grafico per essere solo il 50% dello schermo e altra parte viene utilizzato per visualizzare alcune altre informazioni.

E 'possibile avere file di risorse XML per le API grafico di achartengine e come farlo?

Ho cercato di trovare un esempio, ma non l'ho trovato. E 'supportato o no?

È stato utile?

Soluzione

Questa è una FAQ per AChartEngine. L'applicazione demo AChartEngine è disponibile per il download qui: AChartEngine demo

Nel codice sorgente demo si può vedere un esempio su come incorporare un grafico in una vista esistente.

In sostanza, nel file XML descrittore di attività, abbiamo definito il seguente come segnaposto per il grafico. Naturalmente, gli altri componenti dell'interfaccia utente vanno di pari passo con questo layout:

ChartDemo / layout / xy_chart.xml vicino Linea 27

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

definire una variabile locale:

ChartDemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java vicino Linea 68

private GraphicalView mChartView;

un'istanza sul metodo onResume () dell'attività:

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

Ogni volta che vengono aggiunti nuovi dati (quando l'utente preme il pulsante "Aggiungi" nel nostro caso, si aggiunge un nuovo punto nella serie attuale e:

ChartDemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java vicino Linea 147

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

Altri suggerimenti

Ci sono due set di API in ChartFactory. Per per esempio. getLineChartView() e getLineChartIntent(). Quindi primo è utilizzato per ottenere una visualizzazione grafica che può essere aggiunto al layout personalizzato e in seguito viene utilizzato per ottenere l'intento. Nell'esempio sopra Dan trovi API getLineChartView() usate che restituisce un GraphicalView.

È possibile scrivere il XML come questo ...

    

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

e il frammento di codice 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();
      }
    }

Quindi, ecco un luogo autosufficiente per trovare tutto su AChartEngine . Che comprende link per scaricare,

  
      
  1. achartengine-1.1.0-demo-source.zip Il codice sorgente AChartEngine 1.1.0 progetto demo. 15 maggio 15 maggio 168 KB 8149
  2.   
  3. achartengine-1.1.0-javadocs.zip La documentazione javadoc AChartEngine 1.1.0. 15 maggio 15 maggio 374 KB 3610
  4.   
  5. achartengine-1.1.0.jar L'AChartEngine 1.1.0 biblioteca accumulo binario. 15 maggio 15 maggio 117 KB 5264
  6.   

Quali sono le ultime per ora (durante la pubblicazione questa risposta). Ora seguite questi semplici passaggi al fine di aggiungere nuovo file grafico:

  • Download e aggiungere achartengine-1.1.0.jar alla sezione lib del progetto
  • Ora fate clic destro sul file e l'aggiungerlo al percorso di generazione, come nella immagine

    Aggiungi vaso per il vostro progetto

  • Ora, come definire nelle risposte precedenti, aggiungere seguente codice alla classe:

    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();
          }
        }
    
    • Per avere dettagli su qualsiasi classe di AChartEngineAPI, scaricare achartengine-1.1.0-javadocs.zip e aperto facendo clic su index.html

    • achartengine-1.1.0-demo-source.zip sarà utile durante l'ulteriore sviluppo deepar dove si può prendere di riferimento per tutti i grafici

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top