2014-02-10 103 views
2

我有一個谷歌地圖的屏幕,在屏幕頂部有一個搜索地點的AutotextView,並使自定義信息窗口顯示更多的細節,問題是當用戶點擊任何標記自定義窗口彈出爲他們的默認行爲(中心所以它混合了autotextview,我可以改變屏幕上的信息窗口位置,即底部或類似的東西。如何更改信息窗口(自定義)在google map v2 android中的位置?

+0

見http://stackoverflow.com/questions/17023222/android-map-api-v2-set-custom-infowindow-position – ridoy

+0

感謝,同樣的問題,我面對.. –

回答

5

如果你想調整標記位置完美的中心在谷歌地圖屏幕彈出,然後請使用下面的代碼,我已經得到彈出高度和基於更新y軸。我希望它會幫助你。

public boolean onMarkerClick(Marker marker) { 

     //Please use fix height popup 
     float container_height = getResources().getDimension(R.dimen.DIP_300); 

     Projection projection = mGoogleMap.getProjection(); 

     Point markerScreenPosition = projection.toScreenLocation(marker.getPosition()); 
     Point pointHalfScreenAbove = new Point(markerScreenPosition.x,(int) (markerScreenPosition.y - (container_height/2))); 

     LatLng aboveMarkerLatLng = projection.fromScreenLocation(pointHalfScreenAbove); 

     marker.showInfoWindow(); 
     CameraUpdate center = CameraUpdateFactory.newLatLng(aboveMarkerLatLng); 
     mGoogleMap.moveCamera(center); 
     mGoogleMap.animateCamera(center); 
     marker.showInfoWindow(); 

     return true; 


} 
+0

謝謝Piyush,這對我很有用。 :) –

+0

完美運作 –

0

目前您無法將信息窗口更改爲低於標記。這已經在gmaps-api-issues上要求和討論過了。

我只能建議你在點擊到不同的位置後設置動畫標記。在那裏添加OnMarkerClickListener並返回true(已處理)。之後,你可以撥打:

marker.showInfoWindow(); 
map.animateCamera(...); 

創建一個類似於默認的效果,但使用不同的位置。

+0

謝謝您答案和時間,當用戶點擊標記時,我們可以停止動畫,彈出信息窗口將打開放置標記的位置。 –

相關問題