Android 检测屏幕上的坐标
我想用手指在屏幕上触摸地图的坐标。问题是,当我用手指触摸屏幕时,坐标不会显示在烤面包片上。 我正在使用谷歌地图v2。我的代码:Android 检测屏幕上的坐标,android,Android,我想用手指在屏幕上触摸地图的坐标。问题是,当我用手指触摸屏幕时,坐标不会显示在烤面包片上。 我正在使用谷歌地图v2。我的代码: @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_POINTER_DOWN) { CrearLugar(); } return super.onTouchEven
@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已经停止了。是的,你必须填写你的代码。你把地图充气了吗?你能复制代码吗?