Android 标记如何实现拖放?
你好? 我正在 Android 中开发 MapView 应用程序。我有三个标记,我希望稍后能够使用 Google Map API getlocation-function。为了尝试一下,我想使用拖放功能移动标记,然后检查位置。
任何人都可以通过拖放操作来处理 Android 标记,或者知道如何开始解决它?
/AK
Hi?
I am working on a MapView app in Android. I have three markers that I want to be able to use the Google Map API getlocation-function on, later on. In order to try it out I would like to move the marker with a drag and drop-function, and then check the location.
Anyone who has gotten a drag and drop to work on an android marker, or know a way to start figuring it out?
/AK
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
实施 Google Maps Android API v2,请参阅:https://developers.google.com/maps/ Documentation/android/ 并在 GoogleMap 对象上设置 setOnMarkerDragListener。例如:
Implement Google Maps Android API v2, refer this: https://developers.google.com/maps/documentation/android/ and set on GoogleMap object setOnMarkerDragListener. For Ex:
这是来自 我的一本书展示了 Android 中 Google 地图上标记的拖放移动。
简而言之,它使用
onTouchEvent()
来检测用户何时触摸并保持手指靠近标记。然后,它从叠加层中删除标记,但使用RelativeLayout
将相同的图像放置在地图顶部。然后,在“移动”触摸事件中,图像会移动(比强制重绘整个覆盖层更快)。当手指抬起时,图像将被删除,但标记将被放回覆盖层中的新位置。Here is a sample project from one of my books showing drag-and-drop movement of markers on a Google Map in Android.
In a nutshell, it uses
onTouchEvent()
to detect when the user touches and holds their finger near a marker. It then removes the marker from the overlay, but puts the same image over top of the map usingRelativeLayout
. Then, on "move" touch events, the image is moved (faster than forcing the whole overlay to redraw). When the finger is lifted, the image is removed, but the marker is put back in the overlay at the new spot.对于地图V2。使用谷歌地图事件。不要自己写。
For MapsV2. Use the google map events. Don't write your own.
下面是《Kotlin Lover》的解答!这非常非常简单!正如你在下面看到的。
下面是获取结束拖动位置的liner代码
Below is the answer to Kotlin Lover! It's quite very simple! As you can see below.
Below is the liner code for getting the end dragging location
我发现了对 CommonsWare 拖放出色功能的一些优化。
我正在用地图上的标记进行一些精确的测量,我希望我的标记准确地位于我触摸并抬起手指的位置,以便测量非常精确。
在 CommonsWare 的原版上,如果您触摸标记“附近”,标记不会到达该确切点,而是会随着手指的移动而移动。
我需要标记出现在我的手指下方的 ACTION_DOWN、ACTION_MOVE 和 ACTION_UP 上。
这是代码,如果有人需要的话。我要感谢CommonsWare提供了这个功能,这真是一个好主意。
这是我修改的部分代码。
我的MapView是mapa;
这样,您的箭头就会出现在您按下的位置,而不是箭头从原来的位置移动。
I found a little optimization for the CommonsWare drag and drop's brilliant function.
I was doing some precise meashurements with markers on my map, and I wanted my marker to be exactly on the spot I touched and lifted my finger so the meashurment was exactly precise.
On the original from CommonsWare if you touch "near" the marker, the marker does not go to that exact point, but moves along with your finger's movement.
I needed the marker to appear just below my finger on the ACTION_DOWN, ACTION_MOVE and ACTION_UP.
Here is the code if someone need's it. I have to thank CommonsWare to make this function, it's a really good idea.
This is the part of the code I modified.
My MapView is mapa;
With this you get your arrow appearing where you press with your, instead of the arrow moving from where it was.
此处 是Android中Mapview中拖放图钉的完整代码
Here is Complete code of Drag And Drop pin in Mapview in Android