Главная » Разработка для Android » Добавление и удаление Наложений

0

Каждый объект MapView содержит список Наложений, которые ото- бражаются  в данный момент. Вы можете получить ссылку на этот список, вызвав метод getOverlays, как показано в следующем фрагменте:

List<Overlay> overlays = mapView.getOverlays();

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

Чтобы добавить ????????? на MapView, создайте новый экземпляр класса Overlay  и внесите его в список, как показано в следующем фраг- менте:

List<Overlay> overlays = mapView.getOverlays(); MyOverlay myOverlay = new MyOverlay(); overlays.add(myOverlay); mapView.postInvalidate();

Добавленное  Наложение будет выведено  при следующей  перерисовке MapView,  поэтому не помешает вызвать  метод postInvalidate после изме- нения списка, чтобы обновить изменения на карте.

Добавление аннотаций в приложение Where Am I?

Эти заключительные изменения в проекте Where  Am I? создают и до- бавляют новое Наложение, которое выводит белую окружность над текущим местоположением устройства1.

1. Начните с создания нового класса MyPositionOverlay в проекте Where

Am I?.

package com.paad.whereami;

import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Point; import android.graphics.RectF; import android.location.Location;

import com.google.android.maps.GeoPoint; import com.google.android.maps.MapView; import com.google.android.maps.Overlay; import com.google.android.maps.Projection;

public class MyPositionOverlay extends Overlay {

@Override

public void draw(Canvas canvas, MapView mapView, boolean shadow) {

}

@Override

public boolean onTap(GeoPoint point, MapView mapView) {

return false;

}

ПРИМЕЧАНИЕ

Приведенный метод далеко не самый предпочтительный при выводе вашей текущей позиции на карте. Данная функциональность уже реа- лизована в Android с помощью класса MyLocationOverlay. Если хотите отображать и обновлять ваше текущее местоположение, вместо реали- зации, описанной выше, рассмотрите использование (или наследова- ние) этого класса, как показано в следующем разделе.

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии