2015-12-23 11 views
7

私は、MPAndroidChartの折れ線グラフの特定の点を探し、ボタンを押した後の点を強調表示するマーカーを表示するつもりです。与えられた例は、私の場合とは異なるイベントに触れた後にのみマーカーが表示される場所です。私は以下のコードを試してみましたが、役に立たないことがあります。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(); 

答えて

1

あなたが簡単にChartオブジェクトに対して、次のいずれかの方法を使用してプログラムで値を強調表示することができます。

  • highlightValues(Highlight[] highs):与えられたデータセット内の指定されたインデックスで値を強調表示します。すべてのハイライトを元に戻すには、nullまたは空の配列を指定します。
  • highlightValue(int xIndex, int dataSetIndex):指定されたDataSetのxインデックスの値をハイライト表示します。すべての強調表示を元に戻すには、x-indexまたはdataSetIndexとして-1を指定します。

これはすべてwikiです。あなたが参照してevenmore私は上記と異なる以下のコードを試してみましたとして

0

私はWikiをwalkthru、

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

結果はまだ同じ不幸である、マーカービューがポップアップ表示されません。私はあなたのコードの例ラインチャートを介して一歩ずつ調査を行います。それはイベントに触れた後に表示され、直ちにプログラムはrefreshContentに行き、後にxとyのオフセット関数を取得し、マーカーがポップアップします。 しかし私が前に述べたシナリオでは、タッチイベントは発生しませんが、グラフが表示されてボタンが押されるボタンは、エンドユーザーが探している時間に関する位置を強調表示して示します。だから手動でrefreshContent2(MarkerViewクラスのrefreshContent関数と同じ)を追加してプロセスをエミュレートしたが、それ以降はxとyを得ることができなかった。私は疑いがあるので、マーカビューは決してポップアップしないのですか?

関連する問題