我正在尝试为谷歌地图片段设置onDrag Listener,但无法触发拖动事件.由于地图不直接支持拖动事件,我正在尝试为View实现拖动侦听器.我知道onMarkerDrag事件,但这对我没有好处,因为我不想移动标记.
捕获地图拖动事件的原因有两个:
首先检测用户是否已平移地图.如果他们没有,我喜欢将他们的位置保留在屏幕上,如果它不在地图上,则动画显示他们的位置.如果他们已经平移了地图,我会假设他们知道他们想要看到什么并强制在屏幕上显示位置.(这似乎应该包含在API中)
陷印的第二个原因是允许用户在地图上绘制线条和多边形.我可以使用onTap事件(添加点)来做到这一点,但我也希望能够让它们自由地使用它.
我的代码看起来像这样:
主要活动:
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
setUpMapIfNeeded();
mMapView = findViewById(R.id.map);
myMapDragListener = new MapDragListener();
mMapView.setOnDragListener(myMapDragListener);
Run Code Online (Sandbox Code Playgroud)
听众:
public class MapDragListener implements OnDragListener {
/**
*
*/
public MapDragListener() {
super();
say.logCat("MapDragListener: I'm ALIVE!!!!");
}
private AkamaiAnnounce say = new AkamaiAnnounce();
private boolean inDrag;
private boolean hasPanned=false;
@Override
public boolean onDrag(View v, DragEvent event) {
say.logCat("MapDragListener.onDrag: " + event.toString());
//String dotTAG = (String) getTag();
if (event.getLocalState() != this) {
return false;
}
boolean myResult = true;
int …Run Code Online (Sandbox Code Playgroud)