首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何实现Android标记的拖放?

如何实现Android标记的拖放?
EN

Stack Overflow用户
提问于 2010-10-10 02:45:22
回答 6查看 46.3K关注 0票数 29

嗨?我正在开发一个安卓系统的MapView应用程序。我有三个标记,我希望稍后能够使用Google Map API的getlocation-function。为了尝试它,我想用拖放功能移动标记,然后检查位置。

有谁已经在android标记上进行了拖放操作,或者知道如何开始解决这个问题?

/AK

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-10-10 03:50:59

来自one of my booksHere is a sample project显示了安卓系统中谷歌地图上标记的拖放移动。

简而言之,它使用onTouchEvent()来检测用户何时触摸并将手指放在标记附近。然后,它从覆盖图中删除标记,但使用RelativeLayout将相同的图像放在地图的顶部。然后,在“移动”触摸事件上,图像被移动(比强制整个覆盖重绘更快)。当手指被抬起时,图像将被移除,但标记将放回覆盖图中的新位置。

票数 25
EN

Stack Overflow用户

发布于 2013-11-11 18:01:49

实现Google Maps Android API v2,参考这个:https://developers.google.com/maps/documentation/android/并在GoogleMap object setOnMarkerDragListener上设置。对于Ex:

代码语言:javascript
复制
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));
票数 55
EN

Stack Overflow用户

发布于 2016-07-31 19:20:24

为了MapsV2。使用google地图事件。不要写你自己的。

代码语言:javascript
复制
        mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
            @Override
            public void onMapClick(LatLng latLng) {
                mVisitingMarker.setPosition(latLng);
                mMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
            }
        });

        mMap.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() {
            @Override
            public void onMarkerDragStart(Marker arg0) {
            }

            @SuppressWarnings("unchecked")
            @Override
            public void onMarkerDragEnd(Marker arg0) {
               Log.d("System out", "onMarkerDragEnd...");
                mMap.animateCamera(CameraUpdateFactory.newLatLng(arg0.getPosition()));
            }

            @Override
            public void onMarkerDrag(Marker arg0) {
            }
        });
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3897409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档