我正在開發一個Android映射應用程序,並且已經成功將Google的ItemizedOverlay教程應用到我的代碼中。我在地圖上很好地繪製了我的小圈子。Android映射覆蓋問題
但是,我想標記我的小標誌和它的標題 - 所有的時間。我將在地圖上放置幾個不同的符號,並且能夠顯示他們的標籤將是一個很大的幫助。我使用了onTap方法,但是當您點擊屏幕時,它會佔用整個顯示屏 - 這不是很有幫助。
我還沒有設法在互聯網上找到這件事,所以我不樂觀,但如果任何人有任何建議,那將非常感激。
我正在開發一個Android映射應用程序,並且已經成功將Google的ItemizedOverlay教程應用到我的代碼中。我在地圖上很好地繪製了我的小圈子。Android映射覆蓋問題
但是,我想標記我的小標誌和它的標題 - 所有的時間。我將在地圖上放置幾個不同的符號,並且能夠顯示他們的標籤將是一個很大的幫助。我使用了onTap方法,但是當您點擊屏幕時,它會佔用整個顯示屏 - 這不是很有幫助。
我還沒有設法在互聯網上找到這件事,所以我不樂觀,但如果任何人有任何建議,那將非常感激。
不知道什麼onTap
與此或你的意思是「它接管整個顯示器」,但我想顯示標籤,你將不得不自己畫。你可以用幾種方法做到這一點。一種方法是直接覆蓋ItemizedOverlay.draw
方法,並遍歷每個GeoPoints
並直接將標題直接繪製到Canvas
上,並在該位置的某個小偏移處。另一種可能的方法是返回一個自定義標記;您可以創建一個Picture
,而不是僅僅返回該符號,您可以通過繪製圓圈然後在其旁邊繪製一些文本來創建Picture
,然後您可以將其包裝在PictureDrawable
中,並將其用作覆蓋項目的標記。
我的方法的onTap看起來是這樣的:
protected boolean onTap (int index) { OverlayItem item = mOverlays.get (index); AlertDialog.Builder dialog = new AlertDialog.Builder (mContext); dialog.setTitle (item.getTitle()); dialog.setMessage (item.getSnippet()); dialog.show(); return true; }
調用應用程序通過在其上下文(本),當它實例化逐項疊加。我仍然不確定這意味着什麼,但是我保存mContext中的傳入上下文,並在onTap()中使用它。當然,自從其他人登錄到互聯網後,我無法真正承認它。它確實在屏幕上顯示了Overlay的信息,但是(不幸的是,對我來說)並不是我滿意的方式。
我正在努力重寫draw方法,但這已經被打斷了很多,並且還處於早期階段。如果有任何興趣,我會在這裏發佈。
R.
尼爾更新:繪製方法被覆蓋,它似乎運行良好。我的應用很好地在我的小符號旁繪製了小標籤,我對此很滿意。讓我知道你是否對代碼感興趣。 – Rich 2010-09-27 17:30:33
啊,我現在明白了,我沒有意識到你正在使用對話框。很高興聽到你想出了一些更好的東西! – 2010-10-15 14:17:27
的onTap:當我對映射後的碼元點按,則顯示標題,但在遮蓋了地圖(基本上)的方式。除此之外,我認爲這並沒有太大的作用,除此之外,我確信這些數據都在應用程序中。我會採取一個措施 – Rich 2010-09-21 20:45:01
糟糕,我在完成之前打回來......繼續:我會看到什麼我可以使用ItemizedOverlay.draw,謝謝你的提示。 – Rich 2010-09-21 20:49:28
現在是您教我的時候了;-) - 您如何在「onTap」中顯示標題?我也是這樣做的,但是我必須在創建'TextView'的同時完成所有這些額外的工作,並且在視圖上更改'LayoutParams',以使其集中在用戶點擊的任何標記上。你有沒有找到一種方法讓覆蓋層自動爲你做? – 2010-09-21 21:51:34