将十字准线覆盖添加到谷歌地图v2

时间:2013-03-12 18:30:05

标签: android android-mapview google-maps-android-api-2

我正在尝试为我的谷歌地图添加一个叠加层,该地图固定在屏幕中央,以便用户可以使用它来精确选择一个位置。

目前,下面的代码绘制了一个带有居中十字准线图像的地图视图,但由于按钮位于地图视图下方,地图中心会发生变化,十字准线不再代表地图的中心点,该地图已向上移动了高度。按钮。

我看过Android - Showing a crosshair in the center of my Google Map,但它似乎只适用于v1 :(

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/locationpicker_map"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_above="@+id/locationpicker_add_venue"
     android:clickable="true" 
     android:layout_weight="1"
     class="com.google.android.gms.maps.SupportMapFragment"/>
        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/crosshairs"
            android:layout_gravity="center_vertical"
            android:layout_centerInParent="true"/>
        <Button 
        android:id="@+id/locationpicker_add_venue" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text = "Add new venue here"
        android:layout_alignParentBottom="true"/>
</RelativeLayout>

1 个答案:

答案 0 :(得分:4)

为了达到这个效果,我使用了一个围绕地图片段的相对布局,其中以imageview为中心。例如,见下文;

Crosshair centered on android google map

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/locationpicker_map"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:clickable="true" 
     android:layout_weight="1"
     class="com.google.android.gms.maps.SupportMapFragment"/>
        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/crosshairs"
            android:layout_gravity="center_vertical"
            android:layout_centerInParent="true"/>
        <Button 
        android:id="@+id/locationpicker_add_venue" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text = "Add new venue here"
        style="@style/Buttonpurple_style"
        android:layout_gravity="center"
        android:layout_centerHorizontal="true" 
        android:layout_alignParentBottom="true"
        />
</RelativeLayout>