Создание линейного ползунка на графике в андроиде

Я создал график с рядом данных. Теперь я пытаюсь добавить ползунок/маркер линии на диаграмму, как показано ниже.

Я создал график/диаграммы с помощью библиотеки MPAndroidChart, представленной здесь https://github.com/PhilJay/MPAndroidChart.

График, кажется, работает нормально и хорошо, но мне нужен линейный ползунок, как показано ниже, чтобы, когда я касаюсь графика, линия скользила и предоставляла значения линии, пересекающей график. Может ли кто-нибудь помочь мне разобраться с этой проблемой или мне нужно использовать другую библиотеку для достижения этой цели.

введите здесь описание изображения


person Yogesh    schedule 20.04.2015    source источник
comment
как вы добились этого круга на пересечении линий?   -  person Heisenberg    schedule 28.06.2016
comment
Да, для точки я просто использовал класс MarkerView, предоставленный в самой библиотеке. Я создал новый класс ChartMarker и расширил класс MarkerView. Затем в конструкторе я передал макет, содержащий представление изображения, с точкой в ​​качестве источника для супер. Наконец, установите экземпляр ChartMarker на диаграмму с помощью chart.setMarkerView(new ChartMarker(getActivity())).   -  person Yogesh    schedule 30.06.2016
comment
Спасибо Йогеш!! Вы можете ответить на вопрос здесь stackoverflow.com/questions/38100511/, чтобы другие могли извлечь из этого пользу. Я постараюсь принять это.   -  person Heisenberg    schedule 30.06.2016


Ответы (1)


Эта функция стала доступна только что: https://github.com/PhilJay/MPAndroidChart/commits/master

Однако он еще недоступен в виде релиза, поэтому вы не можете получить его через gradle или maven, только через клонирование репозитория.

Это будет в следующем выпуске v2.1.0, который будет доступен в течение следующей недели.

person Philipp Jahoda    schedule 20.04.2015
comment
ВОТ ЭТО ДА! с нетерпением жду вашей новой библиотеки. - person Yogesh; 21.04.2015
comment
Это как раз то, что я хотел. Но чтобы перейти на другой уровень, скажем, у нас есть два графика в одном макете, и оба графика связаны. Скажем, один для высоты, а другой для скорости. Можем ли мы создать линейные ползунки таким образом, чтобы, когда пользователь щелкает запись на одном графике, соответствующая запись на втором графике автоматически выделялась. Я попытался изменить некоторые коды в функции onValueSelected(), но не смог заставить ее работать. Было бы очень приятно, если бы вы могли предложить несколько возможных способов. Спасибо. - person Yogesh; 21.04.2015
comment
В onValueSelected(...) вызовите highlightValues(Highlight[] high) на другом графике с объектом Highlight, предоставленным методом onValueSelected. - person Philipp Jahoda; 21.04.2015
comment
Спасибо!!! это сработало отлично. Раньше я использовал hightlightValue(), а также передавал ему неправильные параметры. Но изменение функции сработало просто отлично. :) ... С нетерпением жду возможности использовать вашу новую библиотеку. Вы получили достижение прямо здесь. - person Yogesh; 22.04.2015
comment
Если не возражаете, не могли бы вы подробнее рассказать о решении? Я искал несколько дней, чтобы внедрить линейный ползунок в мою диаграмму. Включает ли это решение явный ползунок строки (например, панель поиска) или это просто HighlightLine? - person Rameshwar Bhaskaran; 14.06.2016
comment
На самом деле это просто яркая линия. Из библиотеки версии 2.1.0 у нас есть метод mChart.setHighlightIndicatorEnabled(true), который будет отображать линию выделения для диаграммы. И если вы хотите синхронизировать две диаграммы, установите OnChartValueSelectedListener() для диаграммы chart1. Затем в переопределенном onValueSelected(...,Highlight Highlight) вызовите chart2.highlightValues(new Highlight[]{highlight}). Это заставит две диаграммы выделять линии синхронно. - person Yogesh; 30.06.2016