我遇到了很多問題。我有一個MapView,在我的活動中,我設置了標誌來顯示縮放控件,它可以工作。但是,然後用戶導航到另一個活動,回到地圖,縮放控制已經消失。如何確保縮放控件始終顯示在MapView上?
有沒有簡單的方法來確保變焦控制總是存在,還是我需要在自己的頂部滾動?理想情況下,我想在MapView的子類中設置縮放控件,以使事情變得簡單。我懷疑它是失敗的,因爲縮放控件是在錯誤的時間設置的,但何時是正確的時間?
我遇到了很多問題。我有一個MapView,在我的活動中,我設置了標誌來顯示縮放控件,它可以工作。但是,然後用戶導航到另一個活動,回到地圖,縮放控制已經消失。如何確保縮放控件始終顯示在MapView上?
有沒有簡單的方法來確保變焦控制總是存在,還是我需要在自己的頂部滾動?理想情況下,我想在MapView的子類中設置縮放控件,以使事情變得簡單。我懷疑它是失敗的,因爲縮放控件是在錯誤的時間設置的,但何時是正確的時間?
這是我做的。首先添加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();
}
});
你可以這樣做非常簡單地。 在onCreate()
方法做:
MapView mapView = (MapView) findViewById(R.id.map_view_id);
mapView.setBuiltInZoomControls(true);
就這樣,變焦按鈕出現在屏幕的底部。如果觸摸事件發生一小段時間,它們就會消失,如果發生任何觸摸事件,它們會自動再次出現。
我想你已經誤解了。我讓他們很好,但後來他們消失了,儘管調用了這個方法,但他們永遠不會回來。在MapView中似乎有一個bug(或者它有莫名其妙的愚蠢行爲) –
嗯,我明白了。你在哪裏啓用它們?你能提供任何代碼嗎? – Manos