2011-08-19 12 views
0

hereと記載されているように、マップビューにオーバーレイを追加しようとしています。 マーカーが見えないままであることを除いて、すべてが期待通りに機能します(onTapイベントが起動されても)。 IはオーバーレイアイテムのマーカーはMapViewに表示されません

dialog.setIcon(item.getMarker(0)); 

すぐマーカーは、任意の項目をテーピング後に見えるようになる行を追加onTap方法を変更した(私は、オーバーレイ内の2つのアイテムを持っていると私は両方のマーカーとして同じドロウアブルを使用します)。 デバイスをオンにして(マップを再描画すると)、マーカーが再び表示されなくなります。

Android 2.2搭載のSamsung Galaxy p1000を使用しています。 アイデア

答えて

1

このチュートリアルではいくつかのエラーがあったことを覚えているようです。

は、まずコンテキストを取るHelloItemizedOverlayコンストラクタは

public HelloItemizedOverlay(Drawable defaultMarker, Context context) { 
    // super(defaultMarker); - REPLACE THIS WITH LINE BELOW 
    super(boundCenterBottom(defaultMarker)); 
    mContext = context; 
} 

に変更する必要があるとのコンテキストは

HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable, this); 

は、あなたが使用する必要はありません、他のクラスから渡される必要がありますあなたが説明した 'getMarker'の変更。

+0

それは働いた。ありがとう。しかし、アイテムごとにカスタムマーカーを使用する必要があったので、 'createItem(int)'メソッドを 'protected OverlayItem createItem(final int i) 'に変更しました{ \t \t OverlayItem item = items.get(i); \t \t描画可能なdrawable = item.getMarker(0); \t \t場合 \t \t \t INT = drawable.getIntrinsicWidth W(描画可能!= NULL){(); \t \t \t int h = drawable.getIntrinsicHeight(); \t \t \t drawable.setBounds(0、0、w、h); \t \t \t item.setMarker(drawable); \t \t} \t \t返品アイテム; \t} ' – alekz