Получить значение, когда пользователь касается графика - Android
(это просто скриншот из другого приложения)
Я пытаюсь добиться этого с помощью http://www.jjoe64.com/p/graphview-library.html
Я хочу, чтобы перекрестие появилось, когда пользователь касается графика, и чтобы было показано значение оси X этой точки.
1 ответ
Вам понадобится метод для перевода X-позиции на экране в X-позицию на графике и отображения значения Y, соответствующего искомой X-позиции на графике.
Самым простым способом, который я могу придумать, было бы получить ширину экрана в пикселях (при условии, что ваш график соответствует всей ширине) и зарегистрировать события касания, переопределив этот метод ниже в представлении:
@Override
public boolean onTouchEvent(MotionEvent event)
{
//TODO get x position tapped on the view and translate to x position on graph
}
Внутри этого метода вы можете получить нажатие на x-координату (от объекта MotionEvent), а затем перевести в положение на графике.
Например, вы можете определить, какой процент пути вдоль экрана коснулся (скажем, ширина экрана составляет 400 пикселей, а пользователь нажимает 300 пикселей, что составляет 75% длины), а затем переместить этот процент через точки данных графика (так что 75 % через заказанный набор данных)
Затем вы можете отобразить всплывающее окно или добавить что-то в свой onDraw
метод, который добавляет точку данных как небольшое наложение.
Примечание. Вам понадобятся точки необработанных данных для выполнения поиска, если только вы не попытаетесь угадать, чему соответствуют точки графика на оси у...