有没有办法在MPAndroidChart上拖动数据点?

时间:2019-04-05 21:32:24

标签: java android geometry drag mpandroidchart

我正在使用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();
            }

0 个答案:

没有答案