3

我正在尝试创建MapView.

问题是定义扩展版本时MapView,mapview 不平移。

我正在实现onTouchListener我的自定义地图视图内部。

我还想知道是否有任何方法可以平移地图视图。

当 MapView 的库存版本与相同的源代码一起使用时,该问题不会持续存在。

编辑

MyMapView来源:

public class MyMapView extends MapView{

    public MyMapView(Context context, String apiKey) {
        super(context, apiKey);

    }
    public MyMapView(Context context, AttributeSet attrs) {
        super(context, attrs);

    }
    public MyMapView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if(event.getAction()==MotionEvent.ACTION_DOWN){
            Log.v("MyMapView","Touched");
        }

        return false ;
    }



}

onCreate()来自MapActivity

protected void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.mapper);
    mMapView=(MyMapView) findViewById(R.id.mapper_map);
    mMapView.setSatellite(false);       

}
4

2 回答 2

1

你的 onTouchEvent() 应该返回 false,否则它会消耗事件。

您还可以实例化 MapController 并使用它来更改视图。这是我正在开发的应用程序的代码片段:

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mapview);

    myMapView = (MapView) findViewById( R.id.myMapView );
    myMapView.setBuiltInZoomControls( true );
    myMapController = myMapView.getController();

    myPoint = new GeoPoint(0, 0);
    myMapController.setCenter( myPoint );
    myMapController.zoomToSpan( 360 * MILLION, 360 * MILLION );
}
于 2011-01-12T12:54:54.037 回答
0

我投错了。

mMapView=(MyMapView) findViewById(R.id.mapper_map); 

应该

mMapView=(MapView) findViewById(R.id.mapper_map); 

这解决了这个问题。

无论如何,谢谢。

于 2011-01-18T07:17:54.533 回答