Удаление пользовательских плиток при изменении уровня масштабирования является поведением Android GoogleMap по умолчанию.Чтобы «подавить» ее (показывая предыдущую карту, когда плитки для масштабирования ± 1 уровень все еще загружаются), вы можете:
1) создать GroundOverlay
со снимком экрана текущего вида карты.Снимок экрана карты Google вы можете сделать как в ответах на этот вопрос DiscDev и удалить его при загрузке плиток;
2) создать собственный вид, который расширяет MapView
Класс, как в этот ответ и показать в переопределенном методе dispatchDraw()
все, что вы хотите;
3) вы можете установить ImageView
над вашим MapView
и показать его со скриншотом на нем, покаизменен масштаб и загружены новые плитки.А при необходимости вы можете переводить события касания из ImageView
в MapView
и так далее.
Я предпочитаю стр.2 - создать пользовательский вид на основе MapView
, переопределить dispatchDraw()
и показывать временную карту внутри него во время загрузки новой карты.