2011-12-07 50 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