Un'altra libreria (oltre alla gia' citata AndroidPlot) per disegnare grafici su Android e' GraphView
Rispetto alla precedente e' meno commentata ed di utilizzo un po' piu' difficile ma permette di mostrare dati in realtime ed ha lo zoom ed il pan dinamico mediante gesture
Un po' di indicazioni: il tutorial sul sito dello sviluppatore funziona solo con la versione 2.0 (al momento della scrittura di questo post la versione piu' recente e' la 3.0); per questo motivo anche io ho usato la versione 2
Inoltre di default i colori delle label sugli assi delle ascisse e delle ordinate ed il titolo sono bianchi per cui iniziando un progetto da zero con il nuovo SDK si deve cambiare il colore di background della activity (che gia' di suo e' bianco) altrimenti scompare tutto
-------------------------------------------
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000" >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/graph1" />
</RelativeLayout>
-------------------------------------------
Usando il codice sotto riportato (un misto tra il codice di esempio ed alcune righe che ho inserito io) si ha come risultato questa immagine
-------------------------------------------
package com.test.graph;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.widget.LinearLayout;
import com.jjoe64.graphview.GraphView.GraphViewData;
import com.jjoe64.graphview.GraphView.GraphViewSeries;
import com.jjoe64.graphview.GraphView.LegendAlign;
import com.jjoe64.graphview.LineGraphView;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int num = 150;
GraphViewData[] data = new GraphViewData[num];
double v=0;
for (int i=0; i<num; i++) {
v += 0.2;
data[i] = new GraphViewData(i, Math.sin(v));
}
GraphViewSeries seriesSin = new GraphViewSeries("Seno", Color.rgb(200, 50, 00), data);
//attenzione l'array dei dati deve essere completo
//se si omette per esempio di dichiarare dati[4] il programma genera una eccezione
GraphViewData[] dati = new GraphViewData[5];
dati[0] = new GraphViewData(0,0);
dati[1] = new GraphViewData(10,0.5);
dati[2] = new GraphViewData(15,1.5);
dati[3] = new GraphViewData(17,0.7);
dati[4] = new GraphViewData(22,0.7);
GraphViewSeries seriedati = new GraphViewSeries("Misure", Color.rgb(0, 250, 00), dati);
LineGraphView graphView = new LineGraphView(
this
, "Titolo Grafico"
);
// aggiungi la serie dati
graphView.addSeries(seriesSin);
graphView.addSeries(seriedati);
// finestra di visualizzazione del grafico
graphView.setViewPort(0, 20);
graphView.setScrollable(true);
graphView.setScalable(true);
// Legenda
graphView.setShowLegend(true);
graphView.setLegendAlign(LegendAlign.BOTTOM);
graphView.setLegendWidth(70);
LinearLayout layout = (LinearLayout) findViewById(R.id.graph1);
layout.addView(graphView);
}
Visualizzazione post con etichetta GrapView. Mostra tutti i post
Visualizzazione post con etichetta GrapView. Mostra tutti i post
Iscriviti a:
Post (Atom)
Debugger integrato ESP32S3
Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede nell'ID USB della porta Jtag. Nel modulo...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...