2011-12-07 48 views
0

我正在制作一个使用Google地图的Android应用程序。一个功能是用户可以触摸地图上的一个点并检索坐标。我在这里找到了一个很好的教程http://mobiforge.com/developing/story/using-google-maps-android?page=1,它显示了如何使用MotionEvent实现此功能(您可以在“获取被触摸的位置”下的教程中找到代码)。Android - 获取用鼠标单击的像素坐标

我的问题是,触摸事件似乎不被模拟器支持,我没有一个Android设备随时测试它。所以我想要一个方法,它允许我用鼠标点击屏幕并获取被点击的像素的坐标(以便将它们转换为地理坐标)。

从我的研究到目前为止,我找不到任何合适的东西,如果有东西存在,我也不会。谁能帮忙?

回答

1

这将有助于你:

的OnCreate代码:为叠加,将响应触摸

mapView = (MapView) findViewById(R.id.mapView); 
      mapView.setBuiltInZoomControls(true); 
      List<Overlay> mapOverlays = mapView.getOverlays(); 
      MapOverlay mapOverlay = new MapOverlay(); 

      mapOverlays.add(mapOverlay); 

内部类(点击模拟器)

class MapOverlay extends com.google.android.maps.Overlay 
     { 

     @Override 
     public boolean onTap(GeoPoint p, MapView mapView) { 
      // TODO Auto-generated method stub 


      mc= mapView.getController(); 
      mc.animateTo(p); 

      latitude=p.getLatitudeE6()/1E6; 
      longitude=p.getLongitudeE6() /1E6 ; 
        Toast.makeText(Activity.this, 
         p.getLatitudeE6()/1E6 + "," + 
         p.getLongitudeE6() /1E6 , 
         Toast.LENGTH_SHORT).show(); 
     return true; 

     } 
} 
+0

是的,这个作品很棒! (直到现在只在仿真器上测试) 非常感谢! – george

+1

如果它工作,你应该接受它(打勾)干杯! –

+0

完成!对不起,新的论坛,我不知道这个功能。我google了一下,然后在这里找到了。再次感谢你! – george

1

我想你会发现特定的教程也会响应鼠标点击。所有屏幕截图都是模拟器的。

作者的编码风格只是一个注:

同时

if (event.getAction() == 1) 

将工作

if (event.getAction() == MotionEvent.ACTION_UP) 

达同样的事情,但更多的描述和更好的做法

+0

我不知道他做什么,我在想教程..我真的找不到它,也许是我的错。感谢您的答复! – george