1

我有一个 TimeChart,我试图在更改时保存缩放率。因此,我在图表中添加了 ZoomListener:

    public void showChart()
        {
            mChartView = ChartFactory.getTimeChartView(this.context, this.mDataset,
 this.mRenderer, TrackedValue.DATE_FORMAT_USER);

            this.layout.addView(mChartView);

            mChartView.setZoomRate(prefs.getChartZoomRate());
            Log.d("showChart", "Set: "+prefs.getChartZoomRate());

            mChartView.addZoomListener(new ZoomListener() {

                @Override
                public void zoomReset() {
                    // TODO Auto-generated method stub

                }

                @Override
                public void zoomApplied(ZoomEvent e) {              
                    prefs.setChartZoomRate(e.getZoomRate());
                    Log.d("zoomApplied", "Save: "+String.valueOf(e.getZoomRate()+", isZoomIn: "+e.isZoomIn()));
                }
            }, true, true);
        }

当我看到图表并按下放大按钮时,我的日志输出是:

zoomApplied Save: 1.5, isZoomIn: true

当我缩小(通过缩放按钮)时,日志输出为:

zoomApplied Save 1.5, isZoomIn: false

无论我多久放大或缩小,我都不明白为什么 e.getZoomRate() 总是返回 1.5,不管实际的缩放率是多少……虽然 e.isZoomIn() 工作正常。

有任何想法吗?

4

1 回答 1

0

我刚刚尝试了 AChartEngine 演示程序并调用了下面的行,它显示了正确的 1.2 值:

  mChartView.setZoomRate(1.2f);

请确保您设置了正确的值。

于 2012-09-13T15:44:27.510 回答