分类:C#、Android、VS2015、百度地图应用; 创建日期:2016-02-04
一、简介简介:介绍开关手势功能和显示隐藏UI控件
详述:
(1)地图操作开关:平移、缩放、双击放大、双指操作(旋转度和俯视度);
(2)控件显示开关:显示/隐藏缩放按钮;
(3)指南针位置控制:显示在地图左上角或者右上角(仅举例),开发者可据实际情况任意改变位置;
(4)底图标注开关:控制显示/隐藏底图POI,隐藏POI可得到仅显示道路信息的地图
运行截图
在x86模拟器中的运行效果如下:
[flash=500,400]http://s1.knowsky.com/20160211/jnbggafuv5m55.png[/flash]
二、设计步骤在上一节例子的基础上,只需要再增加下面的步骤即可。
1、添加demo07_uisetting.axml文件在layout文件夹下添加该文件,将其改为下面的代码:
<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="50dip"android:orientation="horizontal"><CheckBoxandroid:id="@+id/zoom"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:checked="true"android:text="缩放"/><CheckBoxandroid:id="@+id/scroll"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:checked="true"android:text="平移"/></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="50dip"android:orientation="horizontal"><CheckBoxandroid:id="@+id/rotate"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:checked="true"android:text="旋转"/><CheckBoxandroid:id="@+id/overlook"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:checked="true"android:text="俯视"/></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="50dip"android:orientation="horizontal"><CheckBoxandroid:id="@+id/compass"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:checked="true"android:text="开启指南针"/><CheckBoxandroid:id="@+id/mappoi"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:checked="true"android:text="底图标注"/></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="50dip"android:orientation="horizontal"><CheckBoxandroid:id="@+id/allGesture"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:checked="false"android:text="禁用所有手势"/><CheckBoxandroid:id="@+id/setPadding"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:checked="true"android:text="设置Padding"/></LinearLayout><com.baidu.mapapi.map.TextureMapViewandroid:id="@+id/bmapView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:clickable="true"/></LinearLayout>
2、添加Demo07UISetting.cs文件在SrcSdkDemos文件夹下添加该文件,然后将其内容改为下面的代码:
usingAndroid.App;usingAndroid.Content.PM;usingAndroid.OS;usingAndroid.Widget;usingCom.Baidu.Mapapi.Map;namespaceBdMapV371Demos.SrcSdkDemos
{///<summary>///演示地图UI控制功能///</summary>[Activity(ConfigurationChanges = ConfigChanges.Orientation |ConfigChanges.KeyboardHidden,
Label="@string/demo_name_ui",
ScreenOrientation=ScreenOrientation.Sensor)]publicclassDemo07UISetting : Activity
{PRivateTextureMapView mMapView;protectedoverridevoidOnCreate(Bundle savedInstanceState)
{base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.demo07_uisetting);
mMapView= FindViewById<TextureMapView>(Resource.Id.bmapView);
BaiduMap mBaiduMap=mMapView.Map;
mBaiduMap.SetMapStatus(MapStatusUpdateFactory.NewLatLng(MainActivity.HeNanUniversity));
UiSettings mUiSettings=mBaiduMap.UiSettings;
MapStatus ms=newMapStatus.Builder().Overlook(-30).Build();
MapStatusUpdate u=MapStatusUpdateFactory.NewMapStatus(ms);
mBaiduMap.AnimateMapStatus(u,1000);varzoom= FindViewById<CheckBox>(Resource.Id.zoom);
zoom.CheckedChange+= (s,e)=>{//是否启用缩放手势mUiSettings.ZoomGesturesEnabled =e.IsChecked;
};varscroll = FindViewById<CheckBox>(Resource.Id.scroll);
scroll.CheckedChange+= (s, e) =>{//是否启用平移手势mUiSettings.ScrollGesturesEnabled =e.IsChecked;
};varrotate = FindViewById<CheckBox>(Resource.Id.rotate);
rotate.CheckedChange+= (s, e) =>{//是否启用旋转手势mUiSettings.RotateGesturesEnabled =e.IsChecked;
};varoverlook = FindViewById<CheckBox>(Resource.Id.overlook);
overlook.CheckedChange+= (s, e) =>{//是否启用俯视手势mUiSettings.OverlookingGesturesEnabled =e.IsChecked;
};varcompass = FindViewById<CheckBox>(Resource.Id.compass);
compass.CheckedChange+= (s, e) =>{//是否启用指南针图层mUiSettings.CompassEnabled =e.IsChecked;
};varmappoi = FindViewById<CheckBox>(Resource.Id.mappoi);
mappoi.CheckedChange+= (s, e) =>{//是否显示底图默认标注mBaiduMap.ShowMapPoi(e.IsChecked);
};
}protectedoverridevoidOnPause()
{
mMapView.OnPause();base.OnPause();
}protectedoverridevoidOnResume()
{
mMapView.OnResume();base.OnResume();
}protectedoverridevoidOnDestroy()
{
mMapView.OnDestroy();base.OnDestroy();
}
}
}
3、修改MainActivity.cs文件
在MainActivity.cs文件的demos字段定义中,去掉【示例7】下面的注释。
运行观察结果。