2

我正在尝试放大地图

CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(mBounds, this.getResources().getDisplayMetrics().widthPixels,
                        height, padding);
mMap.animateCamera(cameraUpdate, duration, null); 

之后我想垂直滚动地图

CameraUpdate cameraUpdate =
        CameraUpdateFactory.scrollBy(0, amountToScroll);
    mMap.animateCamera(cameraUpdate, duration, null);

问题是......它不起作用。如果我在缩放后立即调用滚动,则只考虑滚动。如果我在缩放动画完成后滚动地图,我将有 2 个动画。

我想用相同的动画做这两个操作,可以吗?

4

2 回答 2

1

如果你animateCamera多次调用,只有最后一个会完成它的动作。

简单的解决方法是使用moveCamera而不是第一次调用animateCamera,但从用户体验的角度来看,这不是一个好的解决方案。

另一种方法是自己进行数学计算并填写mBounds您真正想要显示的界限。

于 2013-10-29T21:28:44.657 回答
0

最简单的方法是使用 CancelableCallback。您应该检查第一个操作是否完成,然后调用第二个:

mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, size.x, height, 0), new CancelableCallback() {

                @Override
                public void onFinish() {
                    CameraUpdate cu_scroll = CameraUpdateFactory.scrollBy(0, 500);
                    mMap.animateCamera(cu_scroll);
                }

                @Override
                public void onCancel() {
                }
            });
于 2014-10-28T11:26:53.440 回答