android应用 百度地图,Android学习之百度地图API的应用(一)

本文介绍了如何使用百度地图API,包括申请Key、核心类BMapManager、MapView和MapController的应用,以及关键代码片段和注意事项,如验证Key时机、生命周期管理。还提及了布局代码和所需权限,适合初学者入门。
摘要由CSDN通过智能技术生成

现在的地图API很多,我就从百度地图开始了,为了方面自己以后回顾,我会把所有学到的东西记录下来,下面是学习记录:

要使用百度地图首先得申请一个KEY,可以到这里申请(需要注册一个百度账号),申请完之后将从官方下载的Lib导入自己的项目,我导入两个jar包:baidumapapi_v2_1_2.jar、locSDK_3.1.jar、armeabi文件夹

申请key点击:http://developer.baidu.com/map/android-mobile-apply-key.htm

百度地图有三大核心类:

(一)BMapManger:获取地图引擎的管理类

(二)MapView :你所能看到的View

(三)MapController :用来对MapView进行一些操作,如放大,缩小等。。。

首先上效果图,然后是demo的代码,注释写在代码中

235ac330d555c6a2c5636590c3c57d74.png

MainActivity.java

public class MainActivity extends Activity {

private BMapManager manager;

private MapView mapView;

private MapController controller;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 验证key

checkKey();

setContentView(R.layout.activity_main);

initView();

}

private void initView() {

mapView = (MapView) findViewById(R.id.mapView);

//添加放大和缩小按钮

mapView.setBuiltInZoomControls(true);

controller = mapView.getController();

//设置缩放级别[3-19]

controller.setZoom(12);

}

private void checkKey() {

manager = new BMapManager(getApplicationContext());

manager.init(ConstantValue.KEY, new MKGeneralListener() {

// 验证网络后回调

@Override

public void onGetNetworkState(int iError) {

if (iError == MKEvent.ERROR_PERMISSION_DENIED) {

// 验证失败

}

}

// 验证key后回调

@Override

public void onGetPermissionState(int iError) {

if (iError == MKEvent.ERROR_NETWORK_CONNECT) {

// 网络连接异常

}

}

});

}

@Override

protected void onDestroy() {

mapView.destroy();

super.onDestroy();

}

@Override

protected void onPause() {

mapView.onPause();

super.onPause();

}

@Override

protected void onResume() {

mapView.onResume();

super.onResume();

}

}这里有两点要说明下:

1.key的验证要在View视图初始化之前,因为view视图中包含百度的MapView控件,如果顺序倒了,则会报异常。

2.onDestroy()、onPause()、onResume()调用者三个方法是为了让mapView跟Activity进行绑定,因为一些bug的原因,如果不绑定他们俩的生命周期,则在按返回键,重新回到地图上的时候,地图的显示会异常,大家可以试着把三个方法注释掉看看效果。

下面顺便贴上布局代码:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent" >

android:id="@+id/mapView"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

Demo源码不上传了,顺便把需要的权限贴上了:

一些常用的功能:

int latitude = (int) (39.929 * 1E6);// 纬度

int longtitude = (int) (116.397 * 1E6);// 经度

private GeoPoint geoPoint = new GeoPoint(latitude, longtitude);

controller.setCenter(geoPoint);// 设置中心点

// controller.animateTo(geoPoint);// 平移

// controller.zoomIn();// 放大一级

// controller.zoomOut();// 缩小一级

// int mapRotation = mapView.getMapRotation();//获取旋转前的角度

// mapRotation += 30; //范围[0,360]

// controller.setRotation(mapRotation);

初识百度地图API的代码先到着,接着继续学习它的其他有趣的API

启动另外的一个应用程序的Activity(三种方式)

第一种(我自己写的):之前在网上看来一些,很多不是我要的可以启动另外一个应用程序的主Activity.//这些代码是启动另外的一个应用程序的主Activity

反编译APK文件的方法

步骤一:下载所需的工具,一共三个:三个工具打包下载地址:http://download.csdn.net/detail/vipzjyno1/7025729;工具介绍:1、apktool:可以提取出所用图片和布

Android打造通用的下拉刷新组件

还记得上一篇blog的内容吗?如果不记得建议先去了解一下,Android事件处理全面剖析,因为下拉刷新需要用到手势的处理,而上一篇文章中,对事件处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值