Android 标记不显示在htc中的地图上
我被这件事困住了,我尝试了所有的可能性,但没有成功。我用地图创建了一个简单的应用程序进行测试,用户可以简单地触摸地图并在那个地方放置标记。这将在除htc设备外的所有设备上成功运行。我不知道如何为mapview实现onTouch事件 这是我的onTouch代码Android 标记不显示在htc中的地图上,android,google-maps,marker,Android,Google Maps,Marker,我被这件事困住了,我尝试了所有的可能性,但没有成功。我用地图创建了一个简单的应用程序进行测试,用户可以简单地触摸地图并在那个地方放置标记。这将在除htc设备外的所有设备上成功运行。我不知道如何为mapview实现onTouch事件 这是我的onTouch代码 private class MarkerOverlay extends Overlay{ private boolean isMove; @Override public boolean onTouc
private class MarkerOverlay extends Overlay{
private boolean isMove;
@Override
public boolean onTouchEvent(MotionEvent e, MapView mapView) {
final int x = (int) e.getX();
final int y = (int) e.getY();
if(e.getAction()==1){
if(!isMove){
geopoint = mapView.getProjection().fromPixels(x, y);
OverlayItem overlayItem = new OverlayItem(geopoint, "Title", "Description");
if(mapOverlay.m_overlays.size()>=1){
mapOverlay.clearOverlayAll();
}
mapOverlay.addOverlay(overlayItem);
if(!mapView.getOverlays().contains(mapOverlay))
mapView.getOverlays().add(mapOverlay);
mapView.invalidate();
Toast.makeText(SimpleMapMarkerActivity.this, "in press", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(SimpleMapMarkerActivity.this, "out press", Toast.LENGTH_SHORT).show();
}
}else if(e.getAction()==MotionEvent.ACTION_DOWN)
isMove = false;
else if(e.getAction()==MotionEvent.ACTION_MOVE)
isMove = true;
return super.onTouchEvent(e, mapView);
}
}
我也有同样的问题。我不确定它是否能解决你htc的问题。但以下是我所做的: 我已覆盖dispatchTouchEvent。它适用于我的三星Galaxy s2
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
// TODO Auto-generated method stub
if(ev.getAction() == MotionEvent.ACTION_DOWN){
xPos = ev.getX();
yPos = ev.getY();
}
if (ev.getAction() == MotionEvent.ACTION_UP){
if (xPos==ev.getX() && yPos == ev.getY()){
Log.i(LOG_TAG, "Calling onTouch from dispatchTouchEvent.");
onTouch(mapView, ev);
}
}
return super.dispatchTouchEvent(ev);
}
我在地图活动中做这件事。不在覆盖中。地图标记示例
此示例演示如何在地图上绘制可移动标记。您可以修改并放下标记以更改其位置。可以在任何应用程序中使用,您希望从用户处获取地图位置的输入
算法:
一,。通过文件->新建->Android项目名称创建一个新项目。
2.您将在main.xml和android清单文件中看到一些默认代码。
3.将internet权限添加到清单文件或在android.manifest文件中写入以下内容:
我得到了这个解,这个解是由harism给出的 无论何时,只要使用地图实现标记,就像点击地图并显示市场一样,然后实现OnTapGeopPoint g,MapView MapView 如果您想要实现标记,比如通过用户的拖放来移动,那么可以使用onTouch来实现。对于onTouch和移动标记(如拖放),请选中此链接
我认为你的口风有个小毛病。。当你回来的时候,永远是超级的。。。正如文档中所述,如果处理触摸事件,您应该返回true,而默认实现只返回false。我尝试返回true,但地图移动显然停止了是的,如果您跟踪整个触摸手势,从ACTION_向下一直到ACTION_向上。还有Overlay.onTap。。事件可用,您是否考虑过使用它添加标记?是的,使用onTap它可以工作感谢harismI有此示例,但这也会带来厄运