creasylai19

a programmer(https://github.com/creasylai19)

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

基于Fragment的百度Map也很简单

直接看例子吧:

AndroidManifest.xml的配置:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="com.example.testbaidu_v_3_1"
 4     android:versionCode="1"
 5     android:versionName="1.0" >
 6 
 7     <uses-sdk
 8         android:minSdkVersion="8"
 9         android:targetSdkVersion="21" />
10 
11     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
12     <uses-permission android:name="android.permission.USE_CREDENTIALS" />
13     <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
14     <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
15     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
16     <uses-permission android:name="android.permission.INTERNET" />
17     <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
18     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
19     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
20     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
21     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
22     <uses-permission android:name="android.permission.BROADCAST_STICKY" />
23     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
24     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
25 
26     <application
27         android:allowBackup="true"
28         android:icon="@drawable/ic_launcher"
29         android:label="@string/app_name"
30         android:theme="@style/AppTheme" >
31         <meta-data
32             android:name="com.baidu.lbsapi.API_KEY"
33             android:value="your key" />
34         
35         <activity
36             android:name=".MapFragment"
37             android:label="@string/app_name" >
38             <intent-filter>
39                 <action android:name="android.intent.action.MAIN" />
40 
41                 <category android:name="android.intent.category.LAUNCHER" />
42             </intent-filter>
43         </activity>
44     </application>
45 
46 </manifest>

MapFragment类:

 1 package com.example.testbaidu_v_3_1;
 2 
 3 import android.content.BroadcastReceiver;
 4 import android.content.Context;
 5 import android.content.Intent;
 6 import android.content.IntentFilter;
 7 import android.os.Bundle;
 8 import android.support.v4.app.FragmentActivity;
 9 import android.support.v4.app.FragmentManager;
10 import android.widget.Toast;
11 
12 import com.baidu.mapapi.SDKInitializer;
13 import com.baidu.mapapi.map.BaiduMapOptions;
14 import com.baidu.mapapi.map.MapStatus;
15 import com.baidu.mapapi.map.SupportMapFragment;
16 
17 public class MapFragment extends FragmentActivity{
18 
19     private SupportMapFragment map;
20     private SDKReceiver mReceiver;
21     
22     @Override
23     public void onCreate(Bundle savedInstanceState) {
24         // 在使用SDK各组件之前初始化context信息,传入ApplicationContext
25                 // 注意该方法要再setContentView方法之前实现
26                 SDKInitializer.initialize(getApplicationContext());
27         super.onCreate(savedInstanceState);
28         setContentView(R.layout.activity_fragment);
29         MapStatus ms = new MapStatus.Builder().overlook(-20).zoom(15).build();
30         //overlook 设置地图俯仰角
31         //zoom 设置地图缩放级别
32         BaiduMapOptions bo = new BaiduMapOptions().mapStatus(ms)
33                 .compassEnabled(false).zoomControlsEnabled(false);
34         //compassEnabled 设置是否允许指南针,默认允许
35         //zoomControlsEnabled 设置是否显示缩放控件
36         map = SupportMapFragment.newInstance(bo);
37         FragmentManager manager = getSupportFragmentManager();
38         manager.beginTransaction().add(R.id.map, map, "map_fragment").commit();
39         
40         IntentFilter iFilter = new IntentFilter();
41         iFilter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR);
42         iFilter.addAction(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR);
43         mReceiver = new SDKReceiver();
44         registerReceiver(mReceiver, iFilter);
45     }
46 
47     protected void onDestroy() {
48         super.onDestroy();
49         // 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
50         unregisterReceiver(mReceiver);
51     }
52     
53     public class SDKReceiver extends BroadcastReceiver {
54         public void onReceive(Context context, Intent intent) {
55             String s = intent.getAction();
56             if (s.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) {
57                 Toast.makeText(MapFragment.this,
58                         "key 验证出错! 请在 AndroidManifest.xml 文件中检查 key 设置",
59                         Toast.LENGTH_SHORT).show();
60                 ;
61             } else if (s
62                     .equals(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) {
63                 Toast.makeText(MapFragment.this, "网络出错", Toast.LENGTH_SHORT)
64                         .show();
65             }
66         }
67     }
68 }

activity_fragment.xml文件:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="fill_parent"
 4     android:layout_height="fill_parent"
 5     android:orientation="vertical" >
 6 
 7     <FrameLayout
 8         android:id="@+id/map"
 9         android:layout_width="match_parent"
10         android:layout_height="match_parent" />
11 
12 </LinearLayout>

运行结果截图:

posted on 2014-08-19 07:56  creasylai19  阅读(2226)  评论(0编辑  收藏  举报