На зум событие для карт Google на Android - PullRequest
38 голосов
/ 06 января 2010

Мы создаем приложение, использующее API Google Maps для Android.

У меня есть MapController и MapView, и я включаю встроенные элементы управления масштабированием, используя:

mapView.setBuiltInZoomControls(true);

Я бы хотел получить событие, когда пользователь на самом деле увеличивает масштаб карты, как мне это сделать?Я не могу найти такое событие или любое другое общее событие, где я мог бы обнаружить изменение уровня масштабирования.

Обновление

mapView.getZoomControls () устарела.И документация предлагает вместо этого использовать mapView.setBuiltInZoomControls (bool).Это нормально, но я просто не могу понять, как действовать на события из встроенных элементов управления зумом.

Ответы [ 11 ]

1 голос
/ 29 апреля 2011

Я использовал смесь из вышеперечисленного. Я обнаружил, что использование тиммера для запуска потока каждые полсекунды приводит к тому, что карта становится очень шаткой. Вероятно, потому что я использовал пару инструкций If каждый раз. Поэтому я запустил тему с задержкой в ​​500 мс от onUserInteraction. Это дает достаточно времени для обновления zoomLevel, прежде чем поток начнет работать, таким образом, получая правильный уровень увеличения без запуска потока каждые 500 мс.

public void onUserInteraction() {
    handler.postDelayed(zoomChecker, zoomCheckingDelay);
}
...