版本:BaiduSDK 2.12 (旧版本)(3.0以上版本由于昨天申请SDK总出问题以后再记录)

首先,来到百度地图API首页:

开发--->Android开发--->Android地图SDK,点进去后,在左侧有个导航栏,点击 获取密钥,根据相关提示获取key,开发中要用到,这里不过多讲解。

点击相关下载,下载最新的Android地图SDK,解压后获得

往下看,点击开发指南--->配置环境发布,找到Android Studio工程配置方法,根据提示进行操作(这里由于讲的是旧版本2.12,与新版本略有差别,所以我截图下来)。

之后把jar包加入到项目中

2个jar包都要加入,之后软件会自动进行编译,等待编译结束后就可以开始使用了。

代码部分:

(1)在布局中添加组件

    
    

(2)在配置文件中添加相关权限

(2)在MainActivity中编写代码

public class MainActivity extends AppCompatActivity {    /**     * 百度地图的引擎(管理地图)     */    private BMapManager manager;    /**     * 显示地图信息的     */    private MapView mapView;    /**     * 控制地图的:缩放、平移、旋转     */    private MapController controller;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        /**         * 加载布局之前,首先初始化地图的引擎         */        initManager();        setContentView(R.layout.activity_main);        /**         * 初始化布局中的mapView         */        mapView = (MapView) findViewById(R.id.mapView);        /**         * 对控制器初始化         */        controller = mapView.getController();        /**         * 这里设置初始级别为显示第12级(1.0版本是3-18级别,2.0版本开始3-19个级别)         */        controller.setZoom(19);        /**         * 这里设置默认显示的中心地带(比如:116.312741(经度),39.979111(纬度))         */        controller.setCenter(new GeoPoint(39979111, 116312741));    }    private void initManager() {        manager = new BMapManager(this);        manager.init(ContentsUtils.KEY, new MKGeneralListener() {            /**             * 获取网络工作状态             * @param isError  返回状态             */            @Override            public void onGetNetworkState(int isError) {                if (isError == MKEvent.ERROR_NETWORK_CONNECT) {                    Toast.makeText(getApplicationContext(), "网络连接出错", Toast.LENGTH_SHORT).show();                }            }            /**             *获取许可状态             * @param isError   返回状态             */            @Override            public void onGetPermissionState(int isError) {                if (isError == MKEvent.ERROR_NETWORK_CONNECT) {                    Toast.makeText(getApplicationContext(), "申请的key出错了", Toast.LENGTH_SHORT).show();                }            }        });    }    /**     * 优化     */    @Override    protected void onResume() {        super.onResume();        mapView.onResume();    }    /**     * 优化     */    @Override    protected void onPause() {        super.onPause();        mapView.onPause();    }    @Override    protected void onDestroy() {        super.onDestroy();        /**         * 该Activity销毁的时候,把地图显示的view也销毁掉,有助于优化         */        mapView.destroy();    }    /**     * 这里是根据按键做出相应操作     * @param keyCode     * @param event     * @return     */    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        switch (keyCode) {            case KeyEvent.KEYCODE_1:                mapView.setSatellite(false);                mapView.setTraffic(false);                break;            case KeyEvent.KEYCODE_2:                mapView.setSatellite(true);                mapView.setTraffic(false);                break;            case KeyEvent.KEYCODE_3:                mapView.setSatellite(false);                mapView.setTraffic(true);                break;            default:                break;        }        return super.onKeyDown(keyCode, event);    }    /**     * 设置按钮,控制软键盘的打开与关闭     *     * @param view     */    public void click(View view) {        Toast.makeText(MainActivity.this, "打开/关闭键盘", Toast.LENGTH_SHORT).show();        openInputMethod();    }    /**     * 调用软键盘,打开/关闭     */    public void openInputMethod() {        InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);        if (imm.isActive()) {            imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);        } else {            getSystemService(Context.INPUT_METHOD_SERVICE);        }    }}

说明:这里多加了一点功能,就是左上角加个按钮,可以打开/关闭键盘,按键盘的1/2/3键,会分别显示电子地图/卫星地图/实时交通。其他相关操作,代码作了相应注释。

运行效果图: