Android 检测屏幕上的坐标

Android 检测屏幕上的坐标,android,Android,我想用手指在屏幕上触摸地图的坐标。问题是,当我用手指触摸屏幕时,坐标不会显示在烤面包片上。 我正在使用谷歌地图v2。我的代码: @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_POINTER_DOWN) { CrearLugar(); } return super.onTouchEven

我想用手指在屏幕上触摸地图的坐标。问题是,当我用手指触摸屏幕时,坐标不会显示在烤面包片上。 我正在使用谷歌地图v2。我的代码:

@Override
public boolean onTouchEvent(MotionEvent event) 
{
    if (event.getAction() == MotionEvent.ACTION_POINTER_DOWN) 
    {
        CrearLugar();
    }

    return super.onTouchEvent(event);
}

public void CrearLugar()
{
    final GoogleMap mMap=null;

    mMap.setOnMapClickListener(new OnMapClickListener() {
        public void onMapClick(LatLng point) {
            Projection proj=mMap.getProjection();
            Point coord = proj.toScreenLocation(point);

            Toast.makeText(
                MapaLugaresActivity.this,
                "Click\n" +
                "Lat: " + point.latitude + "\n" +
                "Lng: " + point.longitude + "\n" +
                "X: " + coord.x + " - Y: " + coord.y,
                Toast.LENGTH_SHORT).show();
        }
    });
}
除了用手指触摸屏幕外,一切都正常。当我这样做的时候,我想显示被触摸的地方的坐标,但我不能看任何东西,只能看地图

怎么了


谢谢。

必须在活动的任何创建者(onCreate、onResume、onPause等)中设置单击侦听器。请注意,您正在将侦听器设置为(侦听)以进行更改。 您仍然可以使用onTouch重写方法。这将有助于获得用户在屏幕中单击的绝对坐标,但它完全独立于地图。(顺便问一下,你需要绝对坐标做什么?)

试试看:

@Override
public boolean onTouchEvent(MotionEvent event) 
{
    Toast.makeText(
            MapaLugaresActivity.this,
            "Click\n" +
            "X: " + event.getX() + " - Y: " + event.getY(),
            Toast.LENGTH_SHORT).show();

    return super.onTouchEvent(event);
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Inflate view
    // Inflate map view

    mMap.setOnMapClickListener(new OnMapClickListener() {
        public void onMapClick(LatLng point) {
            Projection proj=mMap.getProjection();
            Point coord = proj.toScreenLocation(point);

            Toast.makeText(
            MapaLugaresActivity.this,
            "Click\n" +
            "Lat: " + point.latitude + "\n" +
            "Lng: " + point.longitude + "\n",
            Toast.LENGTH_SHORT).show();
        }
    });
}

为什么要在触摸屏上调用CrearLugar()中调用map click listener?我想把代码分开以便更清楚。MapaLugaresActivity是map加载的活动还是另一个类?谢谢你的回答José,但当我运行应用程序时,它会以这样一条消息结束:不幸的是,Mapa已经停止了。是的,你必须填写你的代码。你把地图充气了吗?你能复制代码吗?