2010-08-23 8 views
2

J'essaie d'afficher la carte dans Android pour la première fois. Maintenant I want to display 3 buttons on the map, and when I clicked on a particular button, that button's click event should be raised. La carte devrait être en plein écran et les boutons sont sur le côté inférieur.Android - carte avec 3 boutons

Je ne sais pas comment je fais ça? Lorsque nous voulons afficher une carte en utilisant MapView, nous devons étendre la classe MapActivity. Alors, suggérez quelques idées, exemples ou sites de référence.

Modifié:

Je carte affichée en utilisant la mise en page suivante:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

    <com.google.android.maps.MapView 
     android:id="@+id/mapView01" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:enabled="true" 
     android:clickable="true" 
     android:apiKey="my generated api key" 
     /> 

    <Button 
     android:text="Button" 
     android:id="@+id/Button01" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 
    </Button> 
</LinearLayout> 
+1

'RelativeLayout' est ce dont vous avez besoin. Bien que ... d'abord faire apparaître la carte seul. Il semble que vous n'ayez pas fait cette partie. Une fois que la carte fonctionne, il est assez facile de faire les choses sur les boutons. – Cristian

+0

@Christian checkout j'ai donné le code de disposition que j'ai utilisé pour afficher la carte ..now ce que je dois faire? merci pour l'aide –

Répondre

5

La réponse de Praveen est correcte. Gardez à l'esprit que l'un des plus grands avantages de RelativeLayout est que vous pouvez éviter l'imbrication inutile. Le plus simple de votre mise en page, le plus facile à maintenir est. Ceci est équivalent à la réponse de Praveen:

<?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"> 
    <com.google.android.maps.MapView 
     xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mapview" 
     android:layout_width="fill_parent" android:layout_height="fill_parent" 
     android:clickable="true" android:apiKey="your_id" /> 
    <Button android:layout_below="@+id/mapview" 
     android:text="@+id/Button03" 
     android:id="@+id/Button01" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentBottom="true"/> 
    <Button android:layout_below="@+id/mapview" 
     android:text="@+id/Button02" 
     android:id="@+id/Button02" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_alignParentBottom="true"/> 
    <Button android:text="@+id/Button03" 
     android:id="@+id/Button01" 
     android:layout_width="wrap_content" 
     android:layout_toLeftOf="@+id/mapview" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentBottom="true"/> 
</RelativeLayout> 
+0

vous avez raison et merci pour la réponse ... Laissez-moi l'essayer –

+0

En faisant cela, le logo Google à la Le bas de la carte peut ne pas s'afficher et ne respecte pas les termes et conditions de Google. Garde cela à l'esprit. – Klaasvaak

3

la mise en page de code que vous avez besoin est ci-dessous.

<?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"> 
    <com.google.android.maps.MapView 
     xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mapview" 
     android:layout_width="fill_parent" android:layout_height="fill_parent" 
     android:clickable="true" android:apiKey="your_id" /> 


    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true"> 
     <Button android:layout_below="@+id/mapview" android:text="@+id/Button03" 
      android:id="@+id/Button01" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:layout_alignParentLeft="true"></Button> 
     <Button android:layout_below="@+id/mapview" android:text="@+id/Button02" 
      android:id="@+id/Button02" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:layout_centerInParent="true"></Button> 
     <Button android:text="@+id/Button03" android:id="@+id/Button01" 
      android:layout_width="wrap_content" android:layout_toLeftOf="@+id/mapview" 
      android:layout_height="wrap_content" android:layout_alignParentRight="true"></Button> 
    </RelativeLayout> 





</RelativeLayout> 
+0

merci pour la réponse –

+0

Erreur dans votre code de disposition -> Button01 et Button03 ayant le même "id" –

+0

@Paresh Mayani: Désolé pour cela. mais la conception de la mise en page atteindre ce que vous voulez. et Cristion écrivent un code plus simple. ça devrait marcher. ;) – Praveen