2011-11-09 23 views
4

私はこれにひどい問題を抱えています。私はMapViewを持っています、私の活動では、ズームコントロールを表示するフラグを設定し、それは動作します。しかし、ユーザーは別のアクティビティーに移動し、マップに戻ってズームコントロールが消えてしまいます。MapViewに常にズームコントロールを表示する方法を教えてください。

ズームコントロールが常に存在することを確認する簡単な方法はありますか、自分自身をトップにロールする必要がありますか?理想的には、MapViewのサブクラスでズームコントロールを設定して、物事を単純にしたいと思っています。私は間違った時間にズームコントロールが設定されているので、失敗していると思われますが、いつ適切なタイミングですか?

答えて

3

ここが私の行いです。まず、あなたのonCreateメソッドで今

<?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> 

(私はのMapViewとZoomControlsを保持するためにRelativeLayoutを使用しています)あなたのMapViewでファイルにZoomControlビューを追加

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にバグがあるようです(または、わかりにくい愚かな振る舞いをしています) –

+0

うーん。どこで有効にしましたか?任意のコードを提供できますか? – Manos

関連する問題