Взаимодействие пользователя во время выполнения с MPAndroidChart

Во-первых, я должен сказать, что MPAndroidChart великолепен, вы добавили несколько функций и настроек, что делает его действительно крутым.

Я хочу добавить взаимодействие пользователя с MPAndroidChart,

Мое требование:

В комбинированной диаграмме (линейная диаграмма и пузырьковая диаграмма) я хочу, чтобы пользователь перетаскивал точку данных в координатном пространстве x, y MPAndroidChart.

Я хочу, чтобы пользователь перетаскивал показанные данные, как этого добиться, какой класс может быть подклассом для достижения этого.


person Alfa    schedule 25.07.2016    source источник


Ответы (1)


Чтобы добавить интерактивности к данным графика - вам нужен вид с жестом панорамирования

Необходимо создать подкласс CombinedChartView, LineChartRenderer, BubbleChartRenderer

Создайте объекты средства визуализации — эти объекты средства визуализации должны быть заменены средствами визуализации, созданными в CombinedChartView. Следовательно, мы создаем его подкласс и заменяем объекты средства визуализации объектами нашей подклассированной версии.

В нашем CombinedChartView (подкласс) переопределяется геттер, сеттер переменной данных. Следовательно, при назначении данных мы создаем наш UIView один раз с помощью жеста панорамирования, берем ссылку на соответствующий ChartDataEntry в UIView, поэтому в функции обработчика Pan UIView мы меняем это DataEntry xIndex и т. д. и вызовите setNeedsDisplay. (Положение кадра UIView еще не известно, держите все это в начале)

В нашем классе Renderer (подкласс LineChartRenderer или BubbleChartRenderer) переопределите функцию DrawDataSet — здесь происходит фактическое рисование, это место, где мы можем получить точные координаты x, y для нашего UIView. Наконец, мы устанавливаем положение кадра. для представлений, созданных в CombinedChartView.

Вот и все, когда мы перемещаем UIView, представление будет панорамироваться и, в свою очередь, перемещать xIndex ChartDataEntry.

person Alfa    schedule 10.08.2016
comment
Привет, альфа, должна сказать, отличная работа, есть ли какой-нибудь фрагмент кода? я хотел бы посмотреть на в качестве ссылки - person Apar Amin; 30.12.2016
comment
Привет, Апар, gist.github.com/alfredreynold/d961e386f84bda305b750b5a32fc983e немного грубой работы, суть здесь просто для справки. Надеюсь, это полезно. - person Alfa; 02.01.2017