如何在Google地图上添加按钮

时间:2013-04-10 13:40:21

标签: android

我想在显示的Google地图上添加一个按钮。我的地图显示为

GoogleMap map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

我使用片段显示地图,布局xml是

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/map"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          class="com.google.android.gms.maps.SupportMapFragment" />

我发现了一些信息可以将按钮加载到视图上,但他们只是一个普通视图,而不是GoogleMap。 感谢

2 个答案:

答案 0 :(得分:1)

您无法直接在Google地图对象中添加按钮,因此您几乎没有选择:

1。使用您自己的实现覆盖SupportMapFragment对象,并将按钮添加到其中。

2。简单的选项是在fragment内设置FrameLayout,并使用FrameLayout向此LinearLayout添加按钮或直接,例如:

 <FrameLayout 
     android:layout_width="match_parent"
     android:layout_height="match_parent">

   <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

        <Button
            android:id="@+id/bLocateMe"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/locate_me_button_selector"
            android:clickable="true"
            android:onClick="locateMeButtonOnClick"
            android:text="@string/locate_me"
            android:textColor="@color/my_white" />
     </LinearLayout>
    <fragment
        xmlns:map="http://schemas.android.com/apk/res-auto"
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</FrameLayout>

答案 1 :(得分:0)

为什么要在地图上放置按钮?

我有一些解决方案:

  1. 如果您想要静态按钮,可以将地图片段放入RelativeView并在RelativeView中放置按钮。
  2. 否则如果你想要按钮,它将与地图一起移动,你可以使用addCircle方法在地图上放置一些形状,例如.. circle,并使用setOnMapClickListener来处理地图上的点击。请参阅GoogleMap API Reference