更改缩放更改时的地图标记图标

时间:2017-02-11 15:06:53

标签: android google-maps google-maps-api-3

当用户缩小到低于13的缩放级别时,我使用此代码更改标记图标:

mMap.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() {
    @Override
    public void onCameraIdle() {
        float zoomLevel = mMap.getCameraPosition().zoom;
        if (previousZoom <= 13 && zoomLevel > 13){
            for(int i=0; i<markers_location.length; i++){
                markers.get(i).setIcon(BitmapDescriptorFactory.fromBitmap(resizeMapIcons("marker_100",47,75)));
            }
        } else if (previousZoom > 13 && zoomLevel <= 13){
            for(int i=0; i<markers_location.length; i++){
                markers.get(i).setIcon(BitmapDescriptorFactory.fromBitmap(resizeMapIcons("dot",25,25)));
            }
        }
        previousZoom = zoomLevel;
    }
});

这样可以正常工作,但相机停止移动后图标需要大约半秒钟才能更改。我想这是因为OnCameraIdleListener只在所有其他动画完成后才被调用。所以我用OnCameraMoveListener尝试了这个(因为每帧调用一次),但是当它达到缩放级别13以便改变所有的时候会冻结一会儿图标。有更好或更快的方法吗?

0 个答案:

没有答案