2011-11-09 71 views
4

我遇到了很多問題。我有一個MapView,在我的活動中,我設置了標誌來顯示縮放控件,它可以工作。但是,然後用戶導航到另一個活動,回到地圖,縮放控制已經消失。如何確保縮放控件始終顯示在MapView上?

有沒有簡單的方法來確保變焦控制總是存在,還是我需要在自己的頂部滾動?理想情況下,我想在MapView的子類中設置縮放控件,以使事情變得簡單。我懷疑它是失敗的,因爲縮放控件是在錯誤的時間設置的,但何時是正確的時間?

回答

3

這是我做的。首先添加zoomControl可查看與您MapView類文件(我使用的是的RelativeLayout舉行的MapView和ZoomControls)

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <MapView 
     android:id="@+id/map" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:apiKey="X" 
     android:clickable="true" /> 

    <ZoomControls 
     android:id="@+id/zoomcontrols" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" /> 
</RelativeLayout> 

現在,在您的onCreate方法做這樣的事情

mapView.setBuiltInZoomControls(false); 
    ZoomControls zoomControls = (ZoomControls) findViewById(R.id.zoomcontrols); 
    zoomControls.setOnZoomInClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mapController.zoomIn(); 
     } 
    }); 
    zoomControls.setOnZoomOutClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mapController.zoomOut(); 
     } 
    }); 
0

你可以這樣做非常簡單地。 在onCreate()方法做:

MapView mapView = (MapView) findViewById(R.id.map_view_id); 
mapView.setBuiltInZoomControls(true); 

就這樣,變焦按鈕出現在屏幕的底部。如果觸摸事件發生一小段時間,它們就會消失,如果發生任何觸摸事件,它們會自動再次出現。

+1

我想你已經誤解了。我讓他們很好,但後來他們消失了,儘管調用了這個方法,但他們永遠不會回來。在MapView中似乎有一個bug(或者它有莫名其妙的愚蠢行爲) –

+0

嗯,我明白了。你在哪裏啓用它們?你能提供任何代碼嗎? – Manos

相關問題