我正在使用MPAndroidChart并且我要求我必须同步两个图形的拖动和缩放,例如,如果我缩小,放大或拖动一个图形中的任何一个,那么其他图形应该被缩放在X轴上缩小,放大或拖动到相同的范围。 示例:如果我将上图拖动到X轴上的第12个点,则下图也应自动拖动到X轴上的第12个点。
伙计我需要知道如何做到这一点,我对mpchartandroid库非常熟悉。
答案 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)
使用OnChartGestureListener
。
https://github.com/PhilJay/MPAndroidChart/wiki/Interaction-with-the-Chart