同步两个mpandroidcharts图形拖动和zomming

时间:2016-01-28 10:20:27

标签: android charts mpandroidchart

我正在使用MPAndroidChart并且我要求我必须同步两个图形的拖动和缩放,例如,如果我缩小,放大或拖动一个图形中的任何一个,那么其他图形应该被缩放在X轴上缩小,放大或拖动到相同的范围。 示例:如果我将上图拖动到X轴上的第12个点,则下图也应自动拖动到X轴上的第12个点。

MyGraphs

伙计我需要知道如何做到这一点,我对mpchartandroid库非常熟悉。

2 个答案:

答案 0 :(得分:5)

我编写了一个函数来执行此操作,我将此函数称为Drag和scale listener。工作完美。

private void syncCharts(Chart mainChart, LineChart[] otherCharts) {
        Matrix mainMatrix;
        float[] mainVals = new float[9];
        Matrix otherMatrix;
        float[] otherVals = new float[9];
        mainMatrix = mainChart.getViewPortHandler().getMatrixTouch();
        mainMatrix.getValues(mainVals);


        for (LineChart tempChart : otherCharts) {

            otherMatrix = tempChart.getViewPortHandler().getMatrixTouch();
            otherMatrix.getValues(otherVals);
            otherVals[Matrix.MSCALE_X] = mainVals[Matrix.MSCALE_X];
            otherVals[Matrix.MTRANS_X] = mainVals[Matrix.MTRANS_X];
            otherVals[Matrix.MSKEW_X] = mainVals[Matrix.MSKEW_X];
            otherMatrix.setValues(otherVals);
            tempChart.getViewPortHandler().refresh(otherMatrix, tempChart, true);

        }
    }

答案 1 :(得分:2)