我可以将2个cameraUpdates与一个animateCamera一起使用吗?

时间:2013-10-29 15:04:47

标签: android google-maps

我正在尝试放大地图

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个动画。

我想用相同的动画做两个操作,是否可能?

2 个答案:

答案 0 :(得分:1)

如果您多次拨打animateCamera,则只有最后一个会完成其操作。

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

另一种方法是自己做数学,并用你真正想要展示的边界填充mBounds

答案 1 :(得分: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() {
                }
            });
相关问题