如何实现对Android标记的拖放操作?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (12)

我正在研究Android中的MapView应用程序。我有三个标记,我希望稍后能够使用Google Map API getlocation函数。为了尝试它,我想通过拖放功能移动标记,然后检查位置。

提问于
用户回答回答于

简而言之,它用于onTouchEvent()检测用户何时触摸并将手指握在标记附近。然后,它会从叠加层中移除标记,但会将相同的图像放在地图顶部RelativeLayout。然后,在“移动”触摸事件时,图像被移动。当手指抬起时,图像被移除,但是标记被放回到新位置的覆盖层中。

用户回答回答于

实施谷歌地图Android API v2,请参考:https//developers.google.com/maps/documentation/android/,并设置GoogleMap对象setOnMarkerDragListener。例如:

map.setOnMarkerDragListener(new OnMarkerDragListener() {
        @Override
        public void onMarkerDragStart(Marker arg0) {
            // TODO Auto-generated method stub
            Log.d("System out", "onMarkerDragStart..."+arg0.getPosition().latitude+"..."+arg0.getPosition().longitude);
        }

        @SuppressWarnings("unchecked")
        @Override
        public void onMarkerDragEnd(Marker arg0) {
            // TODO Auto-generated method stub
            Log.d("System out", "onMarkerDragEnd..."+arg0.getPosition().latitude+"..."+arg0.getPosition().longitude);

            map.animateCamera(CameraUpdateFactory.newLatLng(arg0.getPosition()));
        }

        @Override
        public void onMarkerDrag(Marker arg0) {
            // TODO Auto-generated method stub
            Log.i("System out", "onMarkerDrag...");
        }
    });

//Don't forget to Set draggable(true) to marker, if this not set marker does not drag.

map.addMarker(new MarkerOptions().position(crntLocationLatLng).icon(BitmapDescriptorFactory .fromResource(R.drawable.icon_my_location)).draggable(true));

扫码关注云+社区