基于Fragment的百度Map也很简单
直接看例子吧:
AndroidManifest.xml的配置:
1 26 7 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 31 34 35 38 39 43 44 45 4640 41 42
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 @Override23 public void onCreate(Bundle savedInstanceState) {24 // 在使用SDK各组件之前初始化context信息,传入ApplicationContext25 // 注意该方法要再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 (s62 .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 26 7 11 12
运行结果截图: