标签:ack android 存储设备 on() jsb .net 初始化 事件监听 地图
效果:
API Key的申请地址:http://lbsyun.baidu.com/apiconsole/key
申请注意事项:
安全码:以下界面的SHA1 fingerprint值+;+包名
比如:72dem98dme;com.map
、、、、、、、、、、、文件夹结构、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
代码:
MainActivity.java
package com.mybdmap;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.widget.Toast;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.map.MKEvent;
import com.baidu.mapapi.map.MKMapViewListener;
import com.baidu.mapapi.map.MapController;
import com.baidu.mapapi.map.MapPoi;
import com.baidu.mapapi.map.MapView;
import com.baidu.platform.comapi.basestruct.GeoPoint;
public class MainActivity extends Activity {
private Toast mToast;
private BMapManager mBMapManager;
private MapView mMapView = null;
// 用MapController完毕地图控制
private MapController mMapController = null;
// MKMapViewListener 用于处理地图事件回调
MKMapViewListener mMapListener = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 使用地图sdk前需先初始化BMapManager,这个必须在setContentView()先初始化
mBMapManager = new BMapManager(getApplicationContext());
// 第一个參数是API key,
// 第二个參数是经常使用事件监听。用来处理通常的网络错误,授权验证错误等。你也能够不加入这个回调接口
mBMapManager.init("替换为你自己的AK", new MKGeneralListener() {
// 授权错误的时候调用的回调函数
@Override
public void onGetPermissionState(int iError) {
if (iError == MKEvent.ERROR_PERMISSION_DENIED) {
showToast("API KEY错误, 请检查!");
}
}
// 一些网络状态的错误处理回调函数
@Override
public void onGetNetworkState(int iError) {
if (iError == MKEvent.ERROR_NETWORK_CONNECT) {
Toast.makeText(getApplication(), "您的网络出错啦!",
Toast.LENGTH_LONG).show();
}
}
});
setContentView(R.layout.activity_main);
mMapView = (MapView) findViewById(R.id.bmapView);
mMapController = mMapView.getController();
// 设置地图是否响应点击事件 .
mMapController.enableClick(true);
// 设置地图缩放级别
mMapController.setZoom(12);
// 显示内置缩放控件
mMapView.setBuiltInZoomControls(true);
// 保存精度和纬度的类,
GeoPoint p = new GeoPoint((int) (22.547923 * 1E6),
(int) (114.067368 * 1E6));
// 设置p地方为中心点
mMapController.setCenter(p);
mMapView.regMapViewListener(mBMapManager, new MKMapViewListener() {
// 地图移动完毕时会回调此接口 方法
@Override
public void onMapMoveFinish() {
// showToast("地图移动完毕!");
}
// 地图载入完毕回调此接口方法
@Override
public void onMapLoadFinish() {
showToast("地图载入完毕!");
}
/**
* 地图完毕带动画的操作(如: animationTo())后,此回调被触发
*/
@Override
public void onMapAnimationFinish() {
}
/**
* 当调用过 mMapView.getCurrentMap()后,此回调会被触发 可在此保存截图至存储设备
*/
@Override
public void onGetCurrentMap(Bitmap arg0) {
}
/**
* 点击地图上被标记的点回调此方法
*
*/
@Override
public void onClickMapPoi(MapPoi arg0) {
if (arg0 != null) {
showToast(arg0.strText);
}
}
});
}
@Override
protected void onResume() {
// MapView的生命周期与Activity同步。当activity挂起时需调用MapView.onPause()
mMapView.onResume();
super.onResume();
}
@Override
protected void onPause() {
// MapView的生命周期与Activity同步。当activity挂起时需调用MapView.onPause()
mMapView.onPause();
super.onPause();
}
@Override
protected void onDestroy() {
// MapView的生命周期与Activity同步。当activity销毁时需调用MapView.destroy()
mMapView.destroy();
// 退出应用调用BMapManager的destroy()方法
if (mBMapManager != null) {
mBMapManager.destroy();
mBMapManager = null;
}
super.onDestroy();
}
/**
* 显示Toast消息
*
* @param msg
*/
private void showToast(String msg) {
if (mToast == null) {
mToast = Toast.makeText(this, msg, Toast.LENGTH_SHORT);
} else {
mToast.setText(msg);
mToast.setDuration(Toast.LENGTH_SHORT);
}
mToast.show();
}
}
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /> </LinearLayout>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />所需的jar+so下载地址:http://download.csdn.net/detail/u013425527/8265569
标签:ack android 存储设备 on() jsb .net 初始化 事件监听 地图
原文地址:http://www.cnblogs.com/wzzkaifa/p/6767823.html