我正在尝试放大地图
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个动画。
我想用相同的动画做两个操作,是否可能?
答案 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() {
}
});