Android自定义MapView
-
10-10-2019 - |
题
我正在尝试创建一个扩展版本的 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()
从 MapActivity
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.mapper);
mMapView=(MyMapView) findViewById(R.id.mapper_map);
mMapView.setSatellite(false);
}
解决方案 2
我把它错了。
mMapView=(MyMapView) findViewById(R.id.mapper_map);
应该
mMapView=(MapView) findViewById(R.id.mapper_map);
这解决了问题。
谢谢。
其他提示
您的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 );
}
不隶属于 StackOverflow