Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 标记不显示在htc中的地图上_Android_Google Maps_Marker - Fatal编程技术网

Android 标记不显示在htc中的地图上

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

我被这件事困住了,我尝试了所有的可能性,但没有成功。我用地图创建了一个简单的应用程序进行测试,用户可以简单地触摸地图并在那个地方放置标记。这将在除htc设备外的所有设备上成功运行。我不知道如何为mapview实现onTouch事件

这是我的onTouch代码

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有此示例,但这也会带来厄运