2015-12-23 17 views
7

Mam zamiar poszukać określonego punktu na wykresie liniowym MPAndroidChart, a następnie wyświetlić znacznik, aby podświetlić punkt po naciśnięciu przycisku. Podany przykład to miejsce, w którym znacznik jest wyświetlany tylko po dotknięciu wydarzenia, które jest inne w moim przypadku. Próbowałem kodu poniżej, ale bez skutku, może ktoś proszę mnie nauczyć, że doceniłbym.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(); 

Odpowiedz

1

można łatwo wyróżnić wartości programowo przy użyciu jednej z następujących metod na swoim obiekcie Chart:

  • highlightValues(Highlight[] highs): Highlights wartości w podanych wskaźników w podanych zestawach danych. Podaj wartość pustą lub pustą tablicę, aby cofnąć wszystkie podświetlenia.
  • highlightValue(int xIndex, int dataSetIndex): Podkreśla wartość przy danym indeksie x w danym zestawie danych. Podaj -1 jako indeks X lub dataSetIndex, aby cofnąć wszystkie podświetlenia.

Wszystko w wersji wiki.

0

I walkthru wiki jak odwoływać i evenmore Próbowałem kodu poniżej różni się od wyżej

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

wynik jest nadal niefortunne samo, nigdy widok marker wyskakuje. Przeprowadzam dochodzenie poprzez pojedyncze przejście przez przykładowy wykres liniowy Twojego kodu. Pokazuje po zdarzeniu dotykowym, program od razu przechodzi do odświeżania zawartości i przechodzi do uzyskania funkcji przesunięcia xiy, a znacznik po prostu się wyskakuje. Jednak mój scenariusz, o którym wspomniałem wcześniej, nie spowoduje żadnego wzruszenia, ale uderzy w przycisk, w miejscu, w którym mój wykres będzie się wyświetlał i będzie wskazywał, wskazując punkt lokalizacji w odniesieniu do czasu, w którym użytkownik końcowy wyszukuje. Więc ręcznie dodałem refreshContent2 (to samo, aby funkcja refreshContent w klasie MarkerView), aby emulować proces, ale po tym stwierdziłem, że nigdy go nie dostaję i otrzymam funkcję przesunięcia x, y, która różni się od przykładowego przypadku. Widok znacznika nigdy się nie wyskakuje, bo to jest podejrzane?