2016-08-08 7 views
1

Я использую MpChart'sLineChart для отображения моих графиков. Я добавил несколько строк набора данных. Все работает нормально. Но я хочу, чтобы MarkerView должен быть установлен в какую-то точку посередине и должен быть видимым по умолчанию. Прямо сейчас вид маркера виден только тогда, когда я касаюсь его. Есть ли способ достичь этого?Показать маркер по умолчанию в MpChart

Первоначальный график

Initial graph Markerview показан после того, как граф прикосновении

MarkerView

ответ

2

ли это помочь?

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

mChart.invalidate(); 
0

В библиотеке нет реализации по умолчанию. Одним из способов сделать это может быть изменение класса 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); 
      } 

Это код, чтобы нарисовать изображение из растрового изображения, просто закомментируйте строку, чтобы рисовать круги в drawCircles() из LineChartRenderer и использовать вместо этого.

Оставить комментарий, если у вас есть какие-либо вопросы. Надеюсь, это поможет!