Элементы BalloonItemizedOverlay не отображаются

Вот мой CustomOverlay

class CustomOverlay extends BalloonItemizedOverlay
{
    private ArrayList mOverlays = new ArrayList();
    Context mContext;

    public CustomOverlay(Drawable defaultMarker, MapView mapView)
    {
        super(defaultMarker, mapView);
        mContext = mapView.getContext();
    }

    public void addOverlay(OverlayItem overlay)
    {
        mOverlays.add(overlay);
        populate();
    }

    @Override
    protected OverlayItem createItem(int i)
    {
        return mOverlays.get(i);
    }

    @Override
    public int size()
    {
        return mOverlays.size();
    }

    @Override
    protected boolean onBalloonTap(int index)
    {
        Toast.makeText(mContext, "onBalloonTap for overlay index " + index,
                Toast.LENGTH_LONG).show();
        return true;
    }
}

Вот моя основная деятельность:

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.map_outlets);

    mapView = (MapView) findViewById(R.id.mapView);
    mapView.setBuiltInZoomControls(true);
    mapView.setStreetView(true);

    lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    lm.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER, 1000L,
            500.0f, this);

    Location l = new Location(LocationManager.NETWORK_PROVIDER);
    l = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

    mc = mapView.getController();
    p = new GeoPoint((int) (l.getLatitude() * 1E6),
            (int) (l.getLongitude() * 1E6));
    mc.setCenter(p);
    mc.setZoom(18);
    mc.animateTo(p);

    Drawable redmarker = this.getResources().getDrawable(R.drawable.pinr);
    Drawable greenmarker = this.getResources().getDrawable(R.drawable.pin);

    mapOverlays = mapView.getOverlays();

   //Overlay 1
    overlay1 = new CustomOverlay(greenmarker, mapView);

    OverlayItem oi1 = new OverlayItem(new GeoPoint((int) (33.733492*1E6), (int) (73.088302*1E6)), "Evacuee Trust Cafe", "It sucks");
    overlay1.addOverlay(oi1);

    OverlayItem oi2 = new OverlayItem(new GeoPoint((int) (33.734547*1E6), (int) (73.08599*1E6)), "Balochistan Mosque", "Where muslim men convene");
    overlay1.addOverlay(oi2);

   //Overlay 2
    overlay2 = new CustomOverlay(redmarker, mapView);
    OverlayItem oi3 = new OverlayItem(new GeoPoint((int) (33.73287*1E6), (int) (73.086205*1E6)), "Agha Khan Road", "Its a Road ofc.");
    overlay2.addOverlay(oi3);

    mapOverlays.add(overlay1);
    mapOverlays.add(overlay2);

    mapView.invalidate();
}

Элементы наложения не отображаются на mapView.

Постскриптум Я использую SherlockMapActivity. И я изменил файл манифеста android-mapviewballoons, так как у меня не было старого apis. Я изменил его на минимум 8 и на цель 16.

2

2 ответы

Ошибка здесь:

public CustomOverlay(Drawable defaultMarker, MapView mapView)
{
    super(defaultMarker, mapView);
    mContext = mapView.getContext();
}

Это должно быть:

public CustomOverlay(Drawable defaultMarker, MapView mapView)
    {
        super(boundCenter(defaultMarker), mapView);
        mContext = mapView.getContext();
    }
0
добавлено

Если вы используете https://github.com/jgilfelt/android-mapviewballoons/ , то вы должен переопределить метод (в CustomOverlay):

protected BalloonOverlayView createBalloonOverlayView() {
   //use our custom balloon view with our custom overlay item type:
    return new CustomBalloonOverlayView(getMapView().getContext(), getBalloonBottomOffset();   
}
0
добавлено
добавлено автор Asim, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

Android Developers
Android Developers
4 476 участник(ов)

Общаемся на темы, посвященным Android-разработке, SDK, Kotlin, Realm и т.д.

Android Architecture
Android Architecture
2 186 участник(ов)

Русскоязычный чат по архитектуре в андроид приложениях. Подробнее: http://telegra.ph/Android-Architecture-12-24

rus-speaking/android
rus-speaking/android
1 705 участник(ов)

Основной чат по Android разработке (вопрос-ответ). ПРАВИЛА: bit.ly/andr-rules. NEWS: bit.ly/AnrdResId ЧАТЫ: Основной: bit.ly/andr-main IDE, сборка, Git, сервисы: bit.ly/andr-tools Оффтоп: bit.ly/andr-offtop Конференции, события: bit.ly/andr-events Вакансии, найм: bit.ly/andr-job Архитектура: bit.ly/andr-patterns Rx: bit.ly/andr-rx Тестирование: bit.ly/andr-test Kotlin: bit.ly/andr-kotlin Хаmarin: bit.ly/andr-xamarin За мат, спам, агрессию, предложения о работе, оффтоп в этом канале - бан на сутки и более ☢☢☢

Android Dev Подкаст
Android Dev Подкаст
1 325 участник(ов)

Комната для обсуждения Android Dev подкаста apptractor.ru/AndroidDev/ Общее обсуждение Android: https://t.me/android_ru Остальные чаты про Android: http://t.me/devChats Наши новости https://t.me/androiddevpodcast_news

Android Guards
Android Guards
602 участник(ов)

Обсуждение любых вопросов касающихся безопасности Android. - Защита системы и приложений - Уязвимости и эксплойты - Вредоносное ПО - Копание в кишках системы и приложений (RE)

Android JOB
Android JOB
466 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению Android (full-time, part-time, remote и разовые подработки)

AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
458 участник(ов)

It's Android time now! Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov

Aandroid Talks!
Aandroid Talks!
212 участник(ов)

Чат об общих вопросах по ОС Android. Чат для разработки под андроид - pro.android: https://t.me/joinchat/AAAAAEKIFKnmRT9cMebb9w

Android Rus
Android Rus
68 участник(ов)