我正在制作一款使用Google地图的Android应用。一个功能是用户可以触摸地图的点并检索坐标。我在这里找到了一个很棒的教程http://mobiforge.com/developing/story/using-google-maps-android?page=1,它展示了如何使用MotionEvent实现它(你可以在“获取被触摸的位置”下的教程中找到代码)。
我的问题是模拟器似乎不支持触摸事件,我没有Android设备随时测试它。所以我希望有一个方法,允许我用鼠标点击屏幕并获取被点击的像素的坐标(以便将它们转换为地理坐标)。
从我的研究到目前为止,我找不到任何合适的东西,如果存在某些东西,我也不会。有人可以帮忙吗?
答案 0 :(得分:1)
我认为您会发现特定教程也会响应鼠标点击。所有屏幕截图都是模拟器。
关于作者编码风格的一个注释:
虽然
if (event.getAction() == 1)
将起作用
if (event.getAction() == MotionEvent.ACTION_UP)
相同的东西,但更具描述性和更好的实践
答案 1 :(得分:1)
这将有助于你:
创建代码:
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;
}
}