相机谷歌地图改变循环循环

时间:2016-01-19 06:54:13

标签: android google-maps

在Google地图中进行动画播放时,相机更改会一次又一次地被调用。它是否因为动画尚未完成而被触发?如果是这样,如何获得通知动画的回调已经停止。

这是我的代码:

 map.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
    @Override
    public void onCameraChange(CameraPosition cameraPosition) {
        showLocations(location);
    }
});

private void showLocations() {
    for (int i = 0; i < 2; i++) {
        Marker m = map.addMarker(new MarkerOptions().position(latlngs.get(i))
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.some_icon)));
        markers.add(m);
    }
    LatLngBounds.Builder builder = new LatLngBounds.Builder();
    for (Marker marker : markers) {
        builder.include(marker.getPosition());
    }
    LatLngBounds bounds = builder.build();
    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, 100);
    map.animateCamera(cameraUpdate);
}

1 个答案:

答案 0 :(得分:1)

调用map.animateCamera()会导致OnCameraChangeListener被调用,因此您无法更改相机,除非您计划将侦听器作为其逻辑的一部分进行删除。例如:

map.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
  @Override
  public void onCameraChange(CameraPosition cameraPosition) {
    map.setOnCameraChangeListener(null);
    showLocations(location);
  }
});