Android:在将标记保持在中心的同时拖动地图

时间:2016-10-18 15:50:47

标签: android google-maps google-maps-markers android-location

我是,目前在MapActivity中获取设备的当前位置(lat,lng)。现在我想让用户移动地图,同时将标记保持在中心位置。这意味着无论何时移动地图,都将更新当前位置。 (右?)

我遵循了android How to move a map under a markerHow to attach a flexible marker on map something like Uber and Lyft?,但无法明确我的概念。

Activity_map.xml(这里我添加了ImageView)

uid

我的MapActivity如下

<RelativeLayout 
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">

<fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.MapFragment"
    />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:src="@drawable/gps"
    />

 </RelativeLayout>

非常感谢您的帮助。谢谢。

2 个答案:

答案 0 :(得分:26)

使用带有标记图标的ImageView下的地图将是最好的方式(仅在地图片段下方的框架布局,并且您的标记图像位于顶部应该有效)。然后你可以使用OnCameraIdleListener,它会在地图移动结束时收到回调。因此,只需在地图中设置OnCameraIdleListener的实例即可监听移动回调,如下所示:

map.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() {
        @Override
        public void onCameraIdle() {
            //get latlng at the center by calling
            LatLng midLatLng = map.getCameraPosition().target;
        }
    });

答案 1 :(得分:6)

首先尝试使用Activity_map.xml的这个布局:

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

    <fragment
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.MapFragment"
    />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:src="@drawable/gps"
    />

</RelativeLayout>