2016-08-08 8 views
1

私はMpChartのLineChart私のグラフを表示しています。私は複数のデータセットラインを追加しました。すべてがうまくいきます。しかし、私はMarkerViewを中央のある点に設定し、デフォルトで表示する必要があります。今すぐマーカービューは、私がそれに触れるときだけ見えます。これを達成する方法はありますか?グラフはMpChartでデフォルトでマーカー表示を表示

MarkerView

答えて

2

をタッチした後に表示

初期グラフ

Initial graph Markerviewはそれに役立ちますか?

for (IDataSet set : mChart.getData().getDataSets()) 
    set.setDrawValues(true); 

mChart.invalidate(); 
0

ライブラリでこれを行うデフォルトの実装はありません。 これを行う1つの方法は、ライブラリ内のLineChartRendererクラスを変更することです。 MpAndroidChartsを使用すると、プロットされた点に円を描くことができます。これを変更するには、LineChartEntryの新しいコンストラクタを定義し、それにビットマップを渡します。描かれた円ではなく、プロットされた点でビットマップを描くことができます。

ArrayList<Entry> values = new ArrayList<Entry>(); 
    Drawable d; 
    for (int i = 0; i < dataList.size(); i++) { 
     LineChartData data = dataList.get(i); 
     float val = Float.valueOf(Utils.decimalValuePrecisionTwoPlaces((float) data.getDataVolGallon())); 

     if (data.getImageIndex() >= 0) { 

      d = ContextCompat.getDrawable(getContext(), resIcon[data.getImageIndex()]); 
      bitmap = ((BitmapDrawable) d).getBitmap(); 
      bitmap = Bitmap.createScaledBitmap(bitmap, bitmap.getWidth()/2, bitmap.getHeight()/2, false); 
      values.add(new Entry(i, val, bitmap)); 
     } else { 

      values.add(new Entry(i, val)); 
     } 

    } 

上記のコードは、ビットマップの有無にかかわらずエントリを設定する方法の例です。

 if(e.getBitmap() != null) 
      { 
       c.drawBitmap(e.getBitmap(),mCirclesBuffer[0] - circleRadius, mCirclesBuffer[1] - circleRadius, mRenderPaint); 
      } 

このLineChartRendererのちょうどdrawCirclesで円を描くように行をコメント、ビットマップから画像を描画するコード()、代わりにこれを使用

質問がある場合はコメントを残してください。これが役立ちますように!

関連する問題