本工程为基于高德地图Android SDK进行封装,实现Fragment并加载地图。
本工程为基于高德地图Android SDK进行封装,实现Fragment切换并加载地图。
本示例中的地图用采用TextureMapView,TextureMapView可以有效实现Fragment切换动画效果。
本示例中的Fragment切换采用replace方法,也可以采用hide/show方法。
MapView和TextureMapView的区别在于:TextureMapView是一个TextureView而MapView是一个GLSurfaceView。
在Fragment切换时,如果采用hide/show方式,地图是叠在一起的,GlSurfaceView叠放会出现穿透现象,建议使用TextureMapView避免这个问题。
采用TextureMapView,可以避免Fragment切换动画的黑边,或者是replace时有黑屏闪一下的问题。
如果想采用hide/show方法切换Fragment,请注意一下内存的消耗。
由于MapView的效率较高,在平常的地图使用中,建议用户使用MapView。
Fragment生命周期重写
/**
* 方法必须重写
*/
@Override
public void onResume() {
super.onResume();
textureMapView.onResume();
}
/**
* 方法必须重写
*/
@Override
public void onPause() {
super.onPause();
textureMapView.onPause();
}
/**
* 方法必须重写
*/
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
textureMapView.onSaveInstanceState(outState);
}
/**
* 方法必须重写
*/
@Override
public void onDestroy() {
setCameraPosition(aMap.getCameraPosition());//保存地图状态
super.onDestroy();
textureMapView.onDestroy();
}