2013-05-17 8 views
13

私のアプリにGoogleマップV2を実装しています。マーカーにカスタム情報ウィンドウを追加しました.3つの画像キャンセル、削除&の編集があります。アンドロイドでGoogleマップV2のマーカーカスタム情報ウィンドウでクリック操作を実行する方法

onclick、キャンセル画像ウィンドウhide。 削除データ削除&編集ダイアログボックスが開いて編集できます。

私の問題は、どのようにこれらの画像でクリック操作を実行するのですか?

Image

+0

が重複する可能性については、上記のリンクをチェックhttp://stackoverflow.com/questions/14123243/google-maps-api-v2 -custom-infowindow-like-original-android-google-maps) –

+0

あなたはこの問題の解決策を得ましたか?私は同じ問題を取り上げています。 –

答えて

9

それを行うには直接的な方法はありませんが、(私はまだ自分自身をテストしていない)、このための回避策があるように思われます。この回答には長い説明があります:https://stackoverflow.com/a/15040761/2183804

8

https://developers.google.com/maps/documentation/android/marker

形態を引用ドキュメント

情報ウィンドウは、タッチ又はジェスチャーイベントとして通常のビューのための典型的な対話の任意のものを尊重しないであろう。ただし、の場合、下記のように情報ウィンドウ全体で一般的なクリックイベントを聞くことができます

情報ウィンドウはライブビューではなく、マップに画像として表示されます。その結果、ビューに設定したリスナーは無視され、ビューのさまざまな部分のクリックイベントを区別することはできません。 ボタン、チェックボックス、テキスト入力などのインタラクティブなコンポーネントをカスタム情報ウィンドウに配置しないことをお勧めします。

OnInfoWindowClickListenerを使用すると、情報ウィンドウのクリックイベントを聴くことができます。このリスナーをマップに設定するには、GoogleMap.setOnInfoWindowClickListener(OnInfoWindowClickListener)を呼び出します。ユーザーが情報ウィンドウをクリックすると、onInfoWindowClick(Marker)が呼び出され、情報ウィンドウがデフォルトのハイライトカラー(アイスクリームサンドイッチを実行するデバイスの場合はホロブルー、以前のバージョンの場合はオレンジ)にハイライト表示されます。

https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/GoogleMap.OnInfoWindowClickListener

+1

キャンセル、削除、画像編集のクリック操作はできませんか? – user2251725

+0

ドキュメントによれば、情報ウィンドウ内のコンポーネントではなく、情報ウィンドウ全体でクリックアクションを実行できます。coz情報ウィンドウはライブビューではなく、マップ上にイメージとしてレンダリングされます。 – Raghunandan

+0

はOverlayManagerで可能ですか? – user2251725

-1

これは古い質問私はまだ人々はボタン付き情報ウィンドウを持つことに興味があると思いますが、リストなど

であってもあなたは次のライブラリを確認することができます - https://github.com/Appolica/InteractiveInfoWindowAndroid

あなたは基本的に、独自のフラグメントを追加することができますこのライブラリが提供するマネージャを使用して情報ウィンドウとして表示します。以下は、ライブラリがどれほど簡単に使用できるかのスニペットです。 ([元アンドロイドGoogleマップのようにGoogle MapsのAPI v2のカスタム情報ウィンドウ]の詳細は

final MapInfoWindowFragment mapInfoWindowFragment = 
    (MapInfoWindowFragment) getSupportFragmentManager().findFragmentById(R.id.infoWindowMap); 
final InfoWindow infoWindow = new InfoWindow(marker, markerSpec, fragment); 
// Shows the InfoWindow or hides it if it is already opened. 
mapInfoWindowFragment.infoWindowManager().toggle(infoWindow, true); 
関連する問題