第一,修改布局文件,添加控制不同图层显示的button控件;具体代码如下:
[html]
<RelativeLayout xmlns: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"
tools:context=".MainActivity" >
<!-- 放入百度地图的mapview -->
<com.baidu.mapapi.map.MapView android:id="@+id/bmapsView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"/>
<!-- 添加button,控制地图显示 -->
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="Button" />
</RelativeLayout>
第二,在主类中初始化button对象、并设置相应的点击事件。不同图层的显示使用方法setSatellite和setTraffic来实现,具体代码如下所示:
[java]
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.map.MapController;
import com.baidu.mapapi.map.MapView;
import com.baidu.platform.comapi.basestruct.GeoPoint;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.app.Activity;
public class MainActivity extends Activity {
BMapManager bMapManager = null; // 定义管理sdk的对象
MapView mapView = null; // 定义mapview对象
Button button;
int flag = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 初始化管理对象,注意要在setContentView(R.layout.activity_main)之前初始化,否则会报错
bMapManager = new BMapManager(getApplication());
bMapManager.init("您申请的key", null);
setContentView(R.layout.activity_main);
// 初始化mapview对象,并且设置显示缩放控件
mapView = (MapView) findViewById(R.id.bmapsView);
mapView.setBuiltInZoomControls(true);
// 初始化button
button = (Button) findViewById(R.id.button1);
button.setText("点击进入《卫星图》");
// 定义地图控件,获取mapview的控制,并把地图范围定位北京市
MapController mapController = mapView.getController();
GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));
mapController.setCenter(point);
mapController.setZoom(12);
// 设置button的点击事件,根据点击次数的变化,分别设置显示普通地图、实时交通图和卫星图
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag == 0)
{
flag = flag + 1;
mapView.setSatellite(true);
button.setText("点击进入《实时交通图》");
}
else if(flag == 1)
{
flag = flag + 1;
mapView.setSatellite(false);
mapView.setTraffic(true);
button.setText("点击进入《普通地图》");
}
else if(flag == 2)
{
flag = 0;
mapView.setTraffic(false);
button.setText("点击进入《卫星图》");
}
}
});
}
//注意在onResume、onDestroy和onPause中控制mapview和地图管理对象的状态
@Override
protected void onResume() {
// TODO Auto-generated method stub
mapView.onResume();
if(bMapManager!=null){
补充:移动开发 , Android ,