MPAndroidChart - как нарисовать круг только в последней записи?

Используя MPAndroidChart, есть ли способ нарисовать только один круг на линейной диаграмме? Это означает, что только конец линии будет представлена ​​в виде круга, как показано на этом изображении: введите здесь описание изображения

@ФилДжей


person Ziv Kesten    schedule 03.05.2015    source источник


Ответы (2)


Что ж, обходным путем может быть то, что вы всегда помещаете последнюю запись в отдельный DataSet, у которого включен setDrawCircles(...). Таким образом, вы добавляете последнюю запись в отдельный DataSet, а также в фактический DataSet.

Как только появится «новая» последняя запись, очистите набор данных круга и добавьте в него эту новую запись.

Псевдопример

public void add(Entry e) {

   actualDataSet.addEntry(e);

   circleDataSet.clear();
   circleDataSet.addEntry(e);

   chart.notifyDataSetChanged(); // let the chart know it's data changed
   chart.invalidate(); // redraw
}
person Philipp Jahoda    schedule 03.05.2015
comment
Удивительное решение!! Большое спасибо! - person Ziv Kesten; 03.05.2015
comment
Мне трудно понять эту концепцию, может ли кто-нибудь продемонстрировать это в полном коде? - person SBS; 16.06.2021

Я искал и немного боролся из-за этого, и, на мой взгляд, лучшим решением является использование setIcon, который является довольно новым методом и не запутается, если у вас есть анимация. Вот пример:

dataSet.getEntryForIndex(position).setIcon(ContextCompat.getDrawable(this,R.drawable.myDrawable));

Это будет работать для любой позиции, если вы хотите иметь разные точки с разными рисунками.

person Ricardo    schedule 03.03.2018
comment
Если вы используете более одного набора данных, убедитесь, что у вас нет проблем с их размером, иначе это может не сработать. - person Ricardo; 09.06.2019
comment
у меня проблемы с индексом - person SBS; 16.06.2021