使用代码如下:MainActivity.classpackageyu.hong.map;importcom.baidu.mapapi.BMapManager;importcom.baidu.mapapi.GeoPoint;importcom.baidu.mapapi.LocationListener;importcom.baidu.mapapi.MKGeneralListener;importcom.baidu.mapapi.MKLocationManager;importcom.baidu.mapapi.MapActivity;importcom.baidu.mapapi.MapController;importcom.baidu.mapapi.MapView;importcom.baidu.mapapi.MyLocationOverlay;importandroid.location.Location;importandroid.os.Bundle;importandroid.view.KeyEvent;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.widget.Toast;publicclassMainActivityextendsMapActivity{//初始为于勉庄privatedoubleuserLongitude=33.49087222349736*1E6;//纬度privatedoubleuserLatitude=115.27130064453128*1E6;//经度//添加百度相关控件privateMapViewmapView;privateBMapManagerbMapManager;//加载地图的引擎//百度地图上的key值privateStringkeyString="01331AFA954E7E300428A5F0C9C829E0E16F87A3";//在百度地图上添加一些控件,例如放大、缩小privateMapControllermapController;privateMKLocationManagermLocationManager;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//实例化控件mapView=(MapView)this.findViewById(R.id.bmapView);bMapManager=newBMapManager(MainActivity.this);//必须要加载keybMapManager.init(keyString,newMKGeneralListener(){//key值不正确@OverridepublicvoidonGetPermissionState(intarg0){if(arg0==300){Toast.makeText(MainActivity.this,R.string.key_error,Toast.LENGTH_LONG).show();}}//网络出错@OverridepublicvoidonGetNetworkState(intarg0){Toast.makeText(MainActivity.this,R.string.net_error,Toast.LENGTH_LONG).show();}});this.initMapActivity(bMapManager);mapView.setBuiltInZoomControls(true);//表示可以设置缩放功能mapController=mapView.getController();//初始化Location模块mLocationManager=bMapManager.getLocationManager();//通过enableProvider和disableProvider方法,选择定位的ProvidermLocationManager.enableProvider(MKLocationManager.MK_NETWORK_PROVIDER);mLocationManager.disableProvider(MKLocationManager.MK_GPS_PROVIDER);//返回手机位置mLocationManager.requestLocationUpdates(locationListener);mLocationManager.setNotifyInternal(5,2);//添加定位图层MyLocationOverlaymyLocationOverlay=newMyLocationOverlay(this,mapView);myLocationOverlay.enableMyLocation();//启用定位myLocationOverlay.enableCompass();//启用指南针mapView.getOverlays().add(myLocationOverlay);mapView.setTraffic(true);//交通地图//mapView.setSatellite(true);//卫星地图mapController.setZoom(15);//设置缩放级别mapView.invalidate();//刷新地图}//获取经度纬度privateLocationListenerlocationListener=newLocationListener(){@OverridepublicvoidonLocationChanged(Locationlocation){if(location!=null){userLatitude=location.getLatitude()*1E6;userLongitude=location.getLongitude()*1E6;GeoPointmypoint=newGeoPoint((int)(userLatitude),(int)(userLongitude));mapView.getController().animateTo(mypoint);}}};//销毁@OverrideprotectedvoidonDestroy(){super.onDestroy();if(bMapManager!=null){bMapManager.destroy();bMapManager=null;}}//停止@OverrideprotectedvoidonPause(){super.onPause();if(bMapManager!=null){mLocationManager.removeUpdates(locationListener);bMapManager.stop();}}//重启@OverrideprotectedvoidonResume(){super.onResume();if(bMapManager!=null){bMapManager.start();}}//@OverrideprotectedbooleanisRouteDisplayed(){returnfalse;}//Menu//当点击Menu按钮时,调用该方法@OverridepublicbooleanonCreateOptionsMenu(Menumenu){menu.add(0,1,1,R.string.exit).setIcon(android.R.drawable.ic_menu_close_clear_cancel);returnsuper.onCreateOptionsMenu(menu);}@OverridepublicbooleanonContextItemSelected(MenuItemitem){//选中某个菜单项if(item.getItemId()==1){MainActivity.this.finish();}returnsuper.onOptionsItemSelected(item);}//返回键@OverridepublicbooleanonKeyDown(intkeyCode,KeyEventevent){if(keyCode==KeyEvent.KEYCODE_BACK){finish();}returnsuper.onKeyDown(keyCode,event);}}activity_mainmain.xml<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"><!--添加显示百度地图的控件--><com.baidu.mapapi.MapViewandroid:id="@+id/bmapView"android:layout_width="fill_parent"android:layout_height="fill_parent"android:clickable="true"tools:context=".MainActivity"/></LinearLayout>AndroidManifest.xml<manifestxmlns:android="http://schemas.android.com/apk/res/android"package="yu.hong.map"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="10"android:targetSdkVersion="15"/><!--添加百度地图开发授权--><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permissionandroid:name="android.permission.INTERNET"/><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/><uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/><uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/><!--添加对屏幕的支持--><supports-screensandroid:anyDensity="true"android:largeScreens="true"android:normalScreens="true"android:resizeable="true"android:smallScreens="true"/><applicationandroid:icon="@drawable/ic_maplauncher"android:label="@string/app_name"android:theme="@style/AppTheme"><activityandroid:name=".MainActivity"android:label="@string/title_activity_main"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity></application></manifest>

转载地址:http://blog.sina.com.cn/s/blog_6e334dc7010160p9.html

更多相关文章

  1. android 控件 3d 旋转效果
  2. Android 基础布局控件自定义view使用练习
  3. Android中自定义滑动选中控件WheelView
  4. Android中使用Intent打开本地图库
  5. Android 控件之一:Button 按钮
  6. android 中动态创建控件
  7. Android自定义view三验证码输入控件
  8. 时间控件
  9. Android 动态生成多行多列控件

随机推荐

  1. App 启动页出现短暂闪屏的解决方案
  2. Android(安卓)中设计模式
  3. Android基础入门教程——2.2.1 LinearLay
  4. Android中短信的读取与拦截
  5. android button light 流程分析(三) — f
  6. Android里解析AndroidManifest.xml的java
  7. Fastboot使用详解
  8. Android - Intent基础
  9. 关于Android中的数据存储
  10. Activity横竖屏切换时的UI处理