Mik*_*iki 7 android google-maps google-maps-android-api-2
我有一个谷歌地图(com.google.android.gms.maps.GoogleMap),我有一些标记设置.
我能够,分开,
1)调整缩放级别并将地图置于边界中心:
mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10));
Run Code Online (Sandbox Code Playgroud)
和
2)将地图置于其中一个标记上方:
LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude
+ offset, markerSelected.getPosition().longitude);
mMap.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng));
Run Code Online (Sandbox Code Playgroud)
但是,对于我的生活,我不能同时做两件事,使用newLatLngBounds调整缩放级别,然后将地图置于其他地方.无论我做什么,都是我在地图上看到的.
我该怎么做呢?
对于未来的访问者,您可以通过以下方式链接相机动画:
map.animateCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10), 2000, new CancelableCallback() {
@Override
public void onFinish() {
LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude + offset, markerSelected.getPosition().longitude);
map.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng));
}
@Override
public void onCancel() {
}
});
Run Code Online (Sandbox Code Playgroud)
另请参阅AnimateCameraChainingExampleActivity.java以获取如何无限链接的示例。
尝试同时使用moveCamera和animateCamera...
mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10));
LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude
+ offset, markerSelected.getPosition().longitude);
mMap.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng));
Run Code Online (Sandbox Code Playgroud)
moveCamera将直接移动到该地点,同时animateCamera提供移动效果。它们本质上是线性的,因此一个会在另一个之后发生,但是像我上面所做的那样将它们分层将提供您正在寻找的潜在效果。
如果您尝试在 UI 上查看两个调用的实际移动,则需要根据需要在动画完成后注册回调。
| 归档时间: |
|
| 查看次数: |
5031 次 |
| 最近记录: |