干货分享:android百度地图出体验Android工程师

/ 闽江学院Android工程师 / 2016-06-20

开发工具

Android开发工具有很多。在此,我们推荐开发者使用Eclipse作为自己的开发工具,本套开发指南也是针对Eclipse开发环境下进行编写的。

显示百度地图

百度地图SDK为开发者提供了便捷的显示百度地图数据的接口,通过以下几步操作,即可在您的应用中使用百度地图数据:

第一步:创建并配置工程(具体方法参见工程配置部分的介绍);

第二步:在AndroidManifest中添加开发密钥、所需权限等信息;

(1)在application中添加开发密钥

<application>  
   <meta-data  
       android:name="com.baidu.lbsapi.API_KEY"  
       android:value="开发者 key" />  </application>

2)添加所需权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /><uses-permission android:name="android.permission.WAKE_LOCK"/><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_SETTINGS" />

第三步,在布局xml文件中添加地图控件;

<com.baidu.mapapi.map.MapView  
   android:id="@+id/bmapView"  
   android:layout_width="fill_parent"  
   android:layout_height="fill_parent"  
   android:clickable="true" />

第四步,在应用程序创建时初始化 SDK引用的Context 全局变量:

public class MainActivity extends Activity {  
   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
       super.onCreate(savedInstanceState);  
       //在使用SDK各组件之前初始化context信息,传入ApplicationContext  
       //注意该方法要再setContentView方法之前实现  
       SDKInitializer.initialize(getApplicationContext());  
       setContentView(R.layout.activity_main);  
   }  }

注意:在SDK各功能组件使用之前都需要调用

SDKInitializer.initialize(getApplicationContext());,因此我们建议该方法放在Application的初始化方法中

第五步,创建地图Activity,管理地图生命周期;

public class MainActivity extends Activity {  
   MapView mMapView = null;  
   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
       super.onCreate(savedInstanceState);  
       //在使用SDK各组件之前初始化context信息,传入ApplicationContext  
       //注意该方法要再setContentView方法之前实现  
       SDKInitializer.initialize(getApplicationContext());  
       setContentView(R.layout.activity_main);  
       //获取地图控件引用  
       mMapView = (MapView) findViewById(R.id.bmapView);  
   }  
   @Override  
   protected void onDestroy() {  
       super.onDestroy();  
       //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
       mMapView.onDestroy();  
   }  
   @Override  
   protected void onResume() {  
       super.onResume();  
       //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
       mMapView.onResume();  
       }  
   @Override  
   protected void onPause() {  
       super.onPause();  
       //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
       mMapView.onPause();  
       }  
   }

完成以上步骤后,运行程序,即可在您的应用中显示如下地图:

android工程师,android开发初学者,android经验分享

以上的例子为大家介绍了如何构建一个基础的地图页面。地图控件自v2.3.5版本起,支持多实例,即开发者可以在一个页面中建立多个地图对象,并且针对这些对象分别操作且不会产生相互干扰。具体使用方法请参考MutiMapViewDemo中的相关介绍。

此外,自v2.3.5版本开始。MapView控件还增加了对Fragment框架的支持。用户可以使用SupportMapFragment控件完成相应框架内的开发工作(详见MapFragmentDemo)。



公众号,微信

汇鱼网海峡创乐汇
汇鱼网海峡创乐汇