android-map-fragment

本工程为基于高德地图Android SDK进行封装,实现Fragment并加载地图。

前述

功能描述

本工程为基于高德地图Android SDK进行封装,实现Fragment切换并加载地图。

效果图如下

APP显示效果###

Screenshot

扫一扫安装##

Screenshot

核心难点

本示例中的地图用采用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();
    }