Я использую MPAndroidChart. Я хочу, чтобы можно было щелкнуть точку данных и перетащить ее, а когда я подниму палец, я хочу иметь возможность указать значение Y графика, на котором я поднял палец. В этом случае значение X неважно.
У меня нет проблем с определением координат существующей точки. Я пытался использовать onChartGestureStart и onChartGestureEnd, чтобы определить новые координаты, но пока все, что он говорит мне, это координаты экрана, которые я не совсем уверен, как преобразовать в значения Y на диаграмме.
Вот мой слушатель, который используется для определения координаты нажатого круга данных
chart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
@Override
public void onValueSelected(Entry e, Highlight h) {
if(e.getY() == (float)Min) {
//Min value clicked on , do something
Toast.makeText(getApplicationContext(),"Min Value Clicked:" + Float.toString(e.getY()),Toast.LENGTH_LONG).show();
} else if (e.getY() == (float)Max) {
//Max Value clicked on , do something
Toast.makeText(getApplicationContext(),"Max Value Clicked:" + Float.toString(e.getY()),Toast.LENGTH_LONG).show();
}
}
chart.setOnChartGestureListener(new OnChartGestureListener() {
@Override
public void onChartGestureStart(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture) {
startX = me.getRawX();
startY =me.getRawY();
int test = me.getPointerCount();
MotionEvent.PointerCoords pc = new MotionEvent.PointerCoords();
me.getPointerCoords(0,pc);
}
@Override
public void onChartGestureEnd(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture) {
endX = me.getRawX();
endY =me.getRawY();
}