我正在尝试创建MapView
的扩展版本。
问题是当定义MapView
的扩展版本时,mapview不会平移。
我正在我的自定义地图视图中实现onTouchListener
。
我也想知道有哪些方法可以平移mapview。
当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()
的{{1}}
MapActivity
答案 0 :(得分: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 );
}
答案 1 :(得分:0)
我错了。
mMapView=(MyMapView) findViewById(R.id.mapper_map);
应该是
mMapView=(MapView) findViewById(R.id.mapper_map);
这解决了这个问题。
非常感谢。