2013-03-11 62 views
15

我正在使用Maps API v2在Android上編寫基於地圖的應用程序。Android Maps API中的多個信息窗口2

我已經在地圖上放置了標記,並且可以顯示這些標記的自定義信息窗口,但AFAICT一次只能顯示一個信息窗口。有幾個地方我想要不同的行爲:我想總是顯示多個窗口的信息窗口,沒有標記顯示。

我想我可以寫一些代碼來繪製信息窗口到位圖支持的畫布,並將這些位圖作爲標記「圖標」傳遞給地圖。這種總結我想要做的很好:我希望信息窗口到我的標記。但是這種方法需要我編寫我自己喜歡避免的自己的窗口框架繪圖代碼。

是否有更好的方式支持同時顯示多個信息窗口?

回答

19

在文檔它指出:

由於沒有在任何一個時間只顯示一個信息窗口,這 提供者可能選擇重用的意見,也可以選擇創建每個方法新 意見調用。

所以,不,你不能用常規的信息瀏覽,但它不會太難創建充當infoviews的標記。

編輯

我創建的XML要作爲標記/對話框使用視圖。事情是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:orientation="vertical" 
    android:background="@android:color/white" 
    > 
    <TextView 
     android:text="test" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
    <ImageView 
     android:src="@drawable/ic_launcher" 
     android:layout_width="50dp" 
     android:layout_height="50dp"/> 
</LinearLayout> 

然後我這個角度轉換成位圖,並使用該位圖作爲我的標記:

 ImageView image = (ImageView) findViewById(R.id.main_image); 

     LinearLayout tv = (LinearLayout) this.getLayoutInflater().inflate(R.layout.test_layout, null, false); 
     tv.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
       MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
     tv.layout(0, 0, tv.getMeasuredWidth(), tv.getMeasuredHeight()); 

     tv.setDrawingCacheEnabled(true); 
     tv.buildDrawingCache(); 
     Bitmap bm = tv.getDrawingCache(); 
+0

如何使標記任何指針作爲信息的看法? – 2013-03-28 13:54:37

+0

@SorinComanescu嗯,我打算去這樣的東西:http://stackoverflow.com/a/3036736/969325。但是,當你誇大自己的觀點時,事實證明這有點困難。但那將是我嘗試的道路。也就是說,我從來沒有這樣做過,似乎沒有替代谷歌地圖的舊方法(使用itemizedoverlay)。 – Warpzit 2013-03-28 16:21:42

+2

@SorinComanescu我設法弄明白了。我已經添加了一個簡單的例子與解釋。 – Warpzit 2013-03-28 16:35:35

相關問題