2012-02-20 6 views
7

Używam osmdroida w moim nowym projekcie Androida (ponieważ chcę móc korzystać z map offline), ale napotykam wiele trudności w dostosowywaniu wyglądu informacji bańka przypisana do elementu nakładki.Niestandardowa dymka z danymi dotykowymi dla elementów nakładki za pomocą osmdroida

W tej chwili używam nakładki ItemizedOverlayWithFocus do wyświetlania moich produktów; patrząc na its code, zauważyłem, że cała sprawa została narysowana w metodzie onDrawFinished, więc próbowałem stworzyć własną niestandardową nakładkę, aby zastąpić tę metodę, ale jest to dość trudne do uzyskania wyniku. Co chciałbym dostać coś tak jak to:

The result

Skąd wy udało się uzyskać informację o niestandardowej bańki na swoich projektach?

znalazłem kilka klas do wdrożenia takiego dla Google MapView (jak Jeff Gilfelt's MapView Balloons), ale nic dla osmdroid.

+0

Android mapviewballoons powinien używać prawie tak samo API. Nie próbowałeś przenieść go do osmdroida? – Macarse

+0

Próbuję teraz, ale debuguję (na przykład nie mam żadnego zdarzenia dotykowego). Ale ponieważ widziałem sporo projektów z ładnie wyglądającymi bańkami informacyjnymi, wydaje mi się, że brakuje mi czegoś łatwiejszego niż przenoszenie mapviewballoons. – Vivi

Odpowiedz

8

EDIT:

  • Ta odpowiedź była najlepsza dla starszych Google Map API. W google Map V2 jest już podana ta rzecz: .

można dostać kod z https://github.com/galex/android-mapviewballoons

można uzyskać wybrany balon z metody „BalloonItemizedOverlay.java” jak postępować

private void hideOtherBalloons(List<Overlay> overlays) { 
     for(int i=0; i<overlays.size();i++){ 
      if (overlays.get(i) instanceof BalloonItemizedOverlay<?> && overlays.get(i) != this) { 
       ((BalloonItemizedOverlay<?>) overlays.get(i)).hideBalloon(); 
      }else{ 
       BalloonOverlayView.SELECTED_BALLOON = i; 
       Log.i(i+" : Baloon Open", BalloonOverlayView.SELECTED_BALLOON+""); 
      } 
     } 
} 

Aby ustawić dane można wykorzystać setBalloonData Metoda pliku BalloonOverlayView.java, jak następuje:

protected void setBalloonData(Item item, ViewGroup parent) { 
     if (item.getTitle() != null) { 
      title.setVisibility(VISIBLE); 
      title.setText(item.getTitle()); 
     } else { 
      title.setText(""); 
      title.setVisibility(GONE); 
     } 
     if (item.getSnippet() != null) { 
      snippet.setVisibility(VISIBLE); 
      snippet.setText(item.getSnippet()); 
     } else { 
      snippet.setText(""); 
      snippet.setVisibility(GONE); 
     } 
} 
+0

Link to teraz 404 ... – krzysztofkarolczak

+0

Czy mógłbyś podać link do kodu źródłowego? – TharakaNirmana

Powiązane problemy