基于之前的文章 百度地图3.1.0(一)Hello BaiduMap(http://www.cnblogs.com/creasylai19/p/3921053.html) 添加的功能
主要是添加了三个Button,代码如下
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" 6 tools:context="com.example.testbaidu_v_3_1.MainActivity" > 7 8 <LinearLayout 9 android:layout_width="match_parent" 10 android:layout_height="wrap_content" 11 android:orientation="horizontal" > 12 13 <Button 14 android:layout_width="0dp" 15 android:layout_height="wrap_content" 16 android:layout_weight="1" 17 android:onClick="openNormalMode" 18 android:text="普通地图" /> 19 20 <Button 21 android:layout_width="0dp" 22 android:layout_height="wrap_content" 23 android:layout_weight="1" 24 android:onClick="openSatelliteMode" 25 android:text="卫星地图" /> 26 27 <Button 28 android:layout_width="0dp" 29 android:layout_height="wrap_content" 30 android:layout_weight="1" 31 android:onClick="openTraffic" 32 android:text="交通图" /> 33 </LinearLayout> 34 35 <com.baidu.mapapi.map.MapView 36 android:id="@+id/bmapView" 37 android:layout_width="fill_parent" 38 android:layout_height="fill_parent" 39 android:clickable="true" /> 40 41 </LinearLayout>
MainActivity改成:
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.v7.app.ActionBarActivity; 9 import android.view.View; 10 import android.widget.Toast; 11 12 import com.baidu.mapapi.SDKInitializer; 13 import com.baidu.mapapi.map.BaiduMap; 14 import com.baidu.mapapi.map.MapView; 15 16 public class MainActivity extends ActionBarActivity { 17 18 private MapView mMapView = null; 19 private SDKReceiver mReceiver; 20 private BaiduMap mBaiduMap; 21 private boolean trafficStatus = false; 22 23 protected void onCreate(Bundle savedInstanceState) { 24 super.onCreate(savedInstanceState); 25 // 在使用SDK各组件之前初始化context信息,传入ApplicationContext 26 // 注意该方法要再setContentView方法之前实现 27 SDKInitializer.initialize(getApplicationContext()); 28 setContentView(R.layout.activity_main); 29 // 获取地图控件引用 30 mMapView = (MapView) findViewById(R.id.bmapView); 31 mBaiduMap = mMapView.getMap(); 32 33 // 看baidu的Demo,发现它注册这个广播,用来监听SDKInitializer的初始化 34 IntentFilter iFilter = new IntentFilter(); 35 iFilter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR); 36 iFilter.addAction(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR); 37 mReceiver = new SDKReceiver(); 38 registerReceiver(mReceiver, iFilter); 39 } 40 41 public void openNormalMode(View mView) { 42 mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); 43 } 44 45 public void openSatelliteMode(View mView) { 46 mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); 47 } 48 49 public void openTraffic(View mView) { 50 if (trafficStatus) { 51 mBaiduMap.setTrafficEnabled(false); 52 trafficStatus = false; 53 } else { 54 mBaiduMap.setTrafficEnabled(true); 55 trafficStatus = true; 56 } 57 } 58 59 protected void onDestroy() { 60 super.onDestroy(); 61 // 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 62 mMapView.onDestroy(); 63 unregisterReceiver(mReceiver); 64 } 65 66 @Override 67 protected void onResume() { 68 super.onResume(); 69 // 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 70 mMapView.onResume(); 71 } 72 73 @Override 74 protected void onPause() { 75 super.onPause(); 76 // 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 77 mMapView.onPause(); 78 } 79 80 public class SDKReceiver extends BroadcastReceiver { 81 public void onReceive(Context context, Intent intent) { 82 String s = intent.getAction(); 83 if (s.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) { 84 Toast.makeText(MainActivity.this, 85 "key 验证出错! 请在 AndroidManifest.xml 文件中检查 key 设置", 86 Toast.LENGTH_SHORT).show(); 87 ; 88 } else if (s 89 .equals(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) { 90 Toast.makeText(MainActivity.this, "网络出错", Toast.LENGTH_SHORT) 91 .show(); 92 } 93 } 94 } 95 96 }
对比之前(一)的例子,可以看到主要是添加了 mBaiduMap = mMapView.getMap();
并对参数mBaiduMap做控制
运行结果截屏: