2015-12-23 11 views
7

Ho intenzione di cercare un punto specifico in un grafico a linee di MPAndroidChart e quindi di visualizzare il marcatore per evidenziare il punto dopo che un pulsante è stato premuto. L'esempio dato è dove il marker viene visualizzato solo dopo aver toccato un evento diverso nel mio caso. Ho provato il codice qui sotto, ma senza alcun risultato, qualcuno può insegnarmi che gradirei.MPAndroidChart MarkerView

Highlight h = new Highlight((int) valIndex, linechart2.getData().getDataSetCount()); 
     linechart2.highlightValue(h, true); 
mv2.refreshContent2(valueYAxis.get((int) valIndex), h); 
linechart2.getMarkerView(); 
linechart2.setDrawMarkerViews(true); 
linechart2.getData().setHighlightEnabled(true); 
//  RefreshChart(); 
linechart2.invalidate(); 

risposta

1

Si può facilmente mettere in evidenza i valori di programmazione utilizzando uno dei seguenti metodi sul Chart oggetto:

  • highlightValues(Highlight[] highs): Mette in evidenza i valori gli indici riportati nella serie di dati forniti. Fornire null o un array vuoto per annullare tutte le evidenziazioni.
  • highlightValue(int xIndex, int dataSetIndex): evidenzia il valore nell'indice x specificato nel DataSet specificato. Fornire -1 come x-index o dataSetIndex per annullare tutte le evidenziazioni.

È tutto nel wiki.

0

ho Walkthru il wiki come si fa riferimento e evenmore ho provato codice qui sotto diverso da quello sopra,

Highlight h = new Highlight((int) valIndex, 0); 
     linechart2.highlightValue(h); 
mv2.refreshContent2(valueYAxis.get((int) valIndex), h); 
linechart2.getMarkerView(); 
linechart2.setDrawMarkerViews(true); 
linechart2.getData().setHighlightEnabled(true); 
//  RefreshChart(); 
linechart2.invalidate(); 

il risultato è ancora infelice lo stesso, la vista marcatore non si apre. Eseguo le indagini con un singolo passaggio attraverso il tuo Line Chart esempio di codice. Mostra dopo aver toccato l'evento, il programma va subito a refreshContent e vai a ottenere la funzione di offset xey in seguito e il marker si apre. Ma il mio scenario come ho detto prima, non coinvolgerà nessun evento toccante, ma un colpo di pulsante in cui il mio grafico e shud indicheranno evidenziando il punto di posizione rispetto al tempo che l'utente finale cerca. Quindi ho aggiunto manualmente refreshContent2 (lo stesso per la funzione refreshContent nella classe MarkerView) per emulare il processo, ma successivamente ho trovato che non va mai e ottengo la funzione di offset x, y, che è diversa dal caso di esempio. La vista del pennarello non si apre mai e per questo motivo sono sospettoso?

Problemi correlati