Android - Как отобразить другой оверлей в действии onTap другого оверлея

Я использую MapView для отображения некоторых полигонов (зон) в виде наложений на холсте. Я расширил класс Overlay и теперь хотел бы реализовать метод onTap. После того, как пользователь коснется одной из этих зон, должно отобразиться другое наложение. Я хотел бы определить макет этого наложения как обычный XML-макет, а затем просто раздуть его и отобразить.

Я уже рассматривал один пример под названием android-mapviewballoons, но он использует детализированные наложения, которые берут ресурс Drawable и отображают его на карте. Этот рисунок может быть записан на пленку. В моем случае я хочу, чтобы моя зона (полигон) была интерактивным ресурсом. Кто-нибудь может мне помочь?


person Filip Majernik    schedule 01.05.2012    source источник


Ответы (1)


Шаг № 1. Внедрите onTap() в свой Overlay и подтвердите, что получаете контроль, когда захотите.

Шаг № 2. Настройте существующий макет так, чтобы MapView находился в контейнере, который поддерживает порядок по оси Z, например RelativeLayout

Шаг № 3: В onTap() добавьте еще один дочерний элемент в контейнер (и, в конечном итоге, избавьтесь от этого дочернего элемента, когда это необходимо)

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

person CommonsWare    schedule 01.05.2012