28 votes

Android : J'utilise la bibliothèque AChartEngine pour les graphiques, mais je n'arrive pas à intégrer la vue graphique d'achartengine avec Android xml ?

Mon application nécessite une bibliothèque de graphiques et j'utilise la bibliothèque de graphiques achartengine. Mon application exige que le graphique ne représente que 50% de l'écran, l'autre partie étant utilisée pour afficher d'autres informations.

Est-il possible d'avoir un fichier de ressources xml pour les API de graphes d'achartengine ? Si oui, veuillez me faire savoir comment le faire.

J'ai essayé de trouver un exemple mais je ne l'ai pas trouvé. Je me demande donc s'il est pris en charge ou non.

45voto

Dan Points 27909

Ceci est une FAQ pour AChartEngine. L'application de démonstration d'AChartEngine est disponible pour téléchargement ici : Démonstration d'AChartEngine

Dans le code source de la démo, vous pouvez voir un exemple de la manière d'intégrer un graphique dans une vue existante.

En fait, dans le fichier .xml du descripteur d'activité, nous avons défini les éléments suivants comme espace réservé pour le graphique. Bien sûr, d'autres composants de l'interface utilisateur vont de pair avec cette disposition :

ChartDemo/layout/xy_chart.xml près de la ligne 27

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

Nous définissons une variable locale :

ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java près de la Ligne 68

private GraphicalView mChartView;

Nous l'instancions sur la méthode onResume() de l'activité :

ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java près de la ligne 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();
  }
}

Chaque fois que de nouvelles données sont ajoutées (lorsque l'utilisateur appuie sur le bouton "Add" dans notre cas, un nouveau point est ajouté dans la série actuelle et :

ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java près de la ligne 147

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

15voto

pitnal Points 364

Il existe deux ensembles d'API dans ChartFactory . Par exemple. getLineChartView() y getLineChartIntent() . La première est donc utilisée pour obtenir une vue graphique qui peut être ajoutée à une mise en page personnalisée et la seconde est utilisée pour obtenir l'intention. Dans l'exemple ci-dessus, Dan a utilisé getLineChartView() qui renvoie un GraphicalView .

8voto

Taruni Points 1002

Vous pouvez écrire votre xml comme ceci...

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

et l'extrait de code java est

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

2voto

rptwsthi Points 4796

Voici donc un endroit autosuffisant pour trouver tout ce dont vous avez besoin. AChartEngine . Ce qui inclut le lien pour télécharger,

  1. achartengine-1.1.0-demo-source.zip Le code source du projet de démonstration AChartEngine 1.1.0. 15 mai 15 mai 168 KB 8149
  2. achartengine-1.1.0-javadocs.zip La documentation javadoc de AChartEngine 1.1.0. 15 mai 15 mai 374 KB 3610
  3. achartengine-1.1.0.jar La bibliothèque de construction binaire d'AChartEngine 1.1.0. 15 mai 15 mai 117 KB 5264

Lesquelles sont les plus récentes pour le moment (au moment de poster cette réponse). Maintenant, suivez ces étapes faciles afin d'ajouter un nouveau fichier graphique :

  • Télécharger et ajouter achartengine-1.1.0.jar dans la section lib de votre projet

  • Maintenant, faites un clic droit sur le fichier et ajoutez-le au chemin de construction, comme dans l'image.

    Add jar to your project

  • Maintenant, comme défini dans les réponses précédentes, ajoutez le code suivant à votre 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();
          }
        }
    • Pour obtenir des détails sur n'importe quelle classe de AChartEngineAPI, téléchargez achartengine-1.1.0-javadocs.zip et l'ouvrir en cliquant dans index.html

    • achartengine-1.1.0-demo-source.zip sera utile lors du développement ultérieur de Deepar où vous pourrez prendre référence pour tous les graphiques

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X