2012-02-20 10 views
7

新しいAndroidプロジェクトでosmdroidを使用していますが(オフラインマップを使用できるようにしたいので)、情報の見た目をカスタマイズするのに多くの困難がありますオーバーレイアイテムに割り当てられたバブル。osmdroidを使用してオーバレイアイテムのカスタム情報バブルを作成する

今、私はアイテムを表示するためにItemizedOverlayWithFocusオーバーレイを使用しています。 its codeを見ると、全体がonDrawFinishedメソッドで描画されていることがわかりました。このメソッドをオーバーライドするために独自のカスタムオーバーレイを作成しようとしましたが、これは結果を得るのがかなり難しいです。

The result

あなたたちはあなたのプロジェクトのカスタム情報の泡を得ることができなかった方法:私は何を得るのが大好きだと、ちょうどこのようなものでしょうか?

GoogleのMapView(Jeff Gilfelt's MapView Balloonsなど)にこのようなことを実装するクラスはいくつか見つかりましたが、osmdroidでは何も実装されていません。

+0

android-mapviewballballは、ほぼ同じAPIを使用する必要があります。あなたはそれをosmdroidに移植しようとしなかったのですか? – Macarse

+0

私は今は試していますが、私はデバッグしています(私はタッチイベントが一切発生していません)。しかし、私は素晴らしい情報の泡を持つかなりのプロジェクトを見て以来、私はmapviewballoonsを移植するよりも簡単なものがないと思う。 – Vivi

答えて

8

EDIT:

  • は、この答えは、古いGoogleマップAPIの最高でした。 GoogleマップV2では、この は既に与えられています。

あなたは、あなたがsetBalloonDataを使用することができ、データを設定するために従う

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+""); 
      } 
     } 
} 

として「BalloonItemizedOverlay.java」の方法からバルーンを選択し得ることができます https://github.com/galex/android-mapviewballoons

からコードを取得することができます次のようにBalloonOverlayView.javaファイルのメソッド:

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

リンクは404です... – krzysztofkarolczak

+0

あなたはソースコードへのリンクを提供してください。 – TharakaNirmana

7

あなたはこの新しいライブラリ、OSMボーナスパックをチェックアウトする必要があります。あなたが望むものを正確に行うべきです。

http://code.google.com/p/osmbonuspack/

関連する問題