AChartEngine Android - 重置图表的缩放和平移?

AChartEngine Android - reset zoom and pan of graph?

我正在构建一个 Android 应用程序,我正在使用 AChartEngine 来显示我获得的图表和值。

我能够正确地绘制出我拥有的值。但是,一旦用户放大并在我的图表周围平移,就很难查看数据。我考虑过的一个选项是显示一个“重绘图形”按钮,一旦用户单击它,图形就会重绘到原始状态,缩放和平移也会重置。

到目前为止的代码如下:

public void redrawGraph(View view){
    chartView.repaint();
}

其中 redrawGraph 是我按钮的 onClick 函数,chartViewGraphicalView.

类型的对象

但是,这似乎确实无济于事,因为它只会重绘我图表中的更改(如果我 added/removed 系列渲染器、系列等)。

如何在 AChartEngine 中重置图表的缩放和平移?

把这个放在你的多系列渲染中

    multiRenderer.setZoomButtonsVisible(false);
    // setting pan enablity which uses graph to move on both axis
    multiRenderer.setPanEnabled(true, false);
    // setting click false on graph
    multiRenderer.setClickEnabled(false);
    // setting zoom to false on both axis
    multiRenderer.setZoomEnabled(true, false);
    // setting lines to display on y axis
    multiRenderer.setShowGridY(true);
    // setting lines to display on x axis
    multiRenderer.setShowGridX(true);
    // setting legend to fit the screen size
    multiRenderer.setFitLegend(true);
    // setting displaying line on grid
    multiRenderer.setShowGrid(true);
    // setting zoom to false
    multiRenderer.setZoomEnabled(false);
    // setting external zoom functions to false
    multiRenderer.setExternalZoomEnabled(false);

我的回答参考了 XY/time 图表。首先,您必须在您使用的每个渲染器中启用外部缩放功能。下面的代码片段显示了完成此操作的代码:

yourMultipleSeriesRenderer.setExternalZoomEnabled(true);

在您的方法 redrawGraph 中,您必须执行如下所示的命令:

public void redrawGraph(View view) {
    chartView.zoomReset();
}

这对我来说非常有用。如果您需要任何进一步的信息,请发表评论。