Category: C#, Android, VS2015, Baidu map application; Creation date: 2016-02-04 1. Introduction File name: Demo05MapControl.cs Introduction: Introduction to panning and zooming the map, operating the map with two fingers, monitoring map click events for details Description: (1) Introduce the get and set methods of map zoom level, rotation and overlooking degree; (2) Monitor clicks and long presses
Category: C#, Android, VS2015, Baidu map application; Creation date: 2016-02-04
1. Introduction
File name: Demo05MapControl.cs
Introduction: Introducing panning and zooming the map, operating the map with two fingers, and monitoring map click events
Details:
(1) Introducing the get and set methods of map zoom level, rotation and overlooking degree;
(2) Monitor click and long press map events;
(3) Click, double-click and long press the map to obtain the latitude and longitude coordinates of the point;
(4) Take a screenshot of the map display content. The screenshot save address is: /mnt/sdcard/test.png;
Run screenshot
The running effect in the x86 simulator is as follows:
2. Design steps
1. Add demo06_mapcontrol.axml
Add this file under the layout folder and change it to the following code:
<?xml version=<span style="color: #800000;">"<span style="color: #800000;">1.0</span><span style="color: #800000;">"</span> encoding=<span style="color: #800000;">"</span><span style="color: #800000;">utf-8</span><span style="color: #800000;">"</span>?> <linearlayout xmlns:android="<span" style="color: #800000;">"<span style="color: #800000;">http://schemas.android.com/apk/res/android</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_width</span>=<span style="color: #800000;">"</span><span style="color: #800000;">fill_parent</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_height</span>=<span style="color: #800000;">"</span><span style="color: #800000;">fill_parent</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:orientation</span>=<span style="color: #800000;">"</span><span style="color: #800000;">vertical</span><span style="color: #800000;">"</span> > LinearLayout android:layout_width=<span style="color: #800000;">"</span><span style="color: #800000;">fill_parent</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_height</span>=<span style="color: #800000;">"</span><span style="color: #800000;">50dip</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:orientation</span>=<span style="color: #800000;">"</span><span style="color: #800000;">horizontal</span><span style="color: #800000;">"</span> > Button android:id=<span style="color: #800000;">"</span><span style="color: #800000;">@+id/zoombutton</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_width</span>=<span style="color: #800000;">"</span><span style="color: #800000;">fill_parent</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_height</span>=<span style="color: #800000;">"</span><span style="color: #800000;">wrap_content</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_weight</span>=<span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:text</span>=<span style="color: #800000;">"</span><span style="color: #800000;">缩放</span><span style="color: #800000;">"</span> /> EditText android:id=<span style="color: #800000;">"</span><span style="color: #800000;">@+id/zoomlevel</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_width</span>=<span style="color: #800000;">"</span><span style="color: #800000;">fill_parent</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_height</span>=<span style="color: #800000;">"</span><span style="color: #800000;">wrap_content</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_weight</span>=<span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:text</span>=<span style="color: #800000;">"</span><span style="color: #800000;">10</span><span style="color: #800000;">"</span> /> Button android:id=<span style="color: #800000;">"</span><span style="color: #800000;">@+id/rotatebutton</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_width</span>=<span style="color: #800000;">"</span><span style="color: #800000;">fill_parent</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_height</span>=<span style="color: #800000;">"</span><span style="color: #800000;">wrap_content</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_weight</span>=<span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:text</span>=<span style="color: #800000;">"</span><span style="color: #800000;">旋转</span><span style="color: #800000;">"</span> /> EditText android:id=<span style="color: #800000;">"</span><span style="color: #800000;">@+id/rotateangle</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_width</span>=<span style="color: #800000;">"</span><span style="color: #800000;">fill_parent</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_height</span>=<span style="color: #800000;">"</span><span style="color: #800000;">wrap_content</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_weight</span>=<span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:text</span>=<span style="color: #800000;">"</span><span style="color: #800000;">90</span><span style="color: #800000;">"</span> /> Button android:id=<span style="color: #800000;">"</span><span style="color: #800000;">@+id/overlookbutton</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_width</span>=<span style="color: #800000;">"</span><span style="color: #800000;">fill_parent</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_height</span>=<span style="color: #800000;">"</span><span style="color: #800000;">wrap_content</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_weight</span>=<span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:text</span>=<span style="color: #800000;">"</span><span style="color: #800000;">俯视</span><span style="color: #800000;">"</span> /> EditText android:id=<span style="color: #800000;">"</span><span style="color: #800000;">@+id/overlookangle</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_width</span>=<span style="color: #800000;">"</span><span style="color: #800000;">fill_parent</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_height</span>=<span style="color: #800000;">"</span><span style="color: #800000;">wrap_content</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_weight</span>=<span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:text</span>=<span style="color: #800000;">"</span><span style="color: #800000;">-30</span><span style="color: #800000;">"</span> /> </linearlayout> TextView android:id=<span style="color: #800000;">"</span><span style="color: #800000;">@+id/state</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_width</span>=<span style="color: #800000;">"</span><span style="color: #800000;">fill_parent</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_height</span>=<span style="color: #800000;">"</span><span style="color: #800000;">wrap_content</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:lines</span>=<span style="color: #800000;">"</span><span style="color: #800000;">3</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:text</span>=<span style="color: #800000;">"</span><span style="color: #800000;">点击、长按、双击地图以获取经纬度和地图状态</span><span style="color: #800000;">"</span> /> RelativeLayout android:layout_width=<span style="color: #800000;">"</span><span style="color: #800000;">fill_parent</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_height</span>=<span style="color: #800000;">"</span><span style="color: #800000;">fill_parent</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:orientation</span>=<span style="color: #800000;">"</span><span style="color: #800000;">vertical</span><span style="color: #800000;">"</span> > com.baidu.mapapi.map.TextureMapView android:id=<span style="color: #800000;">"</span><span style="color: #800000;">@+id/bmapView</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_width</span>=<span style="color: #800000;">"</span><span style="color: #800000;">fill_parent</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_height</span>=<span style="color: #800000;">"</span><span style="color: #800000;">fill_parent</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:clickable</span>=<span style="color: #800000;">"</span><span style="color: #800000;">true</span><span style="color: #800000;">"</span> /> Button android:id=<span style="color: #800000;">"</span><span style="color: #800000;">@+id/savescreen</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_width</span>=<span style="color: #800000;">"</span><span style="color: #800000;">wrap_content</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_height</span>=<span style="color: #800000;">"</span><span style="color: #800000;">wrap_content</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_alignParentRight</span>=<span style="color: #800000;">"</span><span style="color: #800000;">true</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_alignParentTop</span>=<span style="color: #800000;">"</span><span style="color: #800000;">true</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:layout_marginTop</span>=<span style="color: #800000;">"</span><span style="color: #800000;">10dip</span><span style="color: #800000;">"</span><span style="color: #000000;"> android:text</span>=<span style="color: #800000;">"</span><span style="color: #800000;">截图</span><span style="color: #800000;">"</span> />
2. Add Demo06MapControl.cs
Add this file under the SrcSdkDemos folder, and then change its content to the following code:
<span style="color: #0000ff;">using</span><span style="color: #000000;"> Android.App; </span><span style="color: #0000ff;">using</span><span style="color: #000000;"> Android.Content.PM; </span><span style="color: #0000ff;">using</span><span style="color: #000000;"> Android.Graphics; </span><span style="color: #0000ff;">using</span><span style="color: #000000;"> Android.OS; </span><span style="color: #0000ff;">using</span><span style="color: #000000;"> Android.Widget; </span><span style="color: #0000ff;">using</span><span style="color: #000000;"> Com.Baidu.Mapapi.Map; </span><span style="color: #0000ff;">using</span><span style="color: #000000;"> Com.Baidu.Mapapi.Model; </span><span style="color: #0000ff;">using</span><span style="color: #000000;"> System.IO; </span><span style="color: #0000ff;">namespace</span><span style="color: #000000;"> BdMapV371Demos.SrcSdkDemos { </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></summary></span> <span style="color: #808080;">///</span><span style="color: #008000;"> 演示地图缩放,旋转,视角控制 </span><span style="color: #808080;">///</span> <span style="color: #808080;"></span> [Activity(Label = <span style="color: #800000;">"</span><span style="color: #800000;">@string/demo_name_control</span><span style="color: #800000;">"</span><span style="color: #000000;">, ConfigurationChanges </span>= ConfigChanges.Orientation |<span style="color: #000000;"> ConfigChanges.KeyboardHidden, ScreenOrientation </span>=<span style="color: #000000;"> ScreenOrientation.Sensor)] </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Demo06MapControl : Activity, BaiduMap.IOnMapClickListener, BaiduMap.IOnMapLongClickListener, BaiduMap.IOnMapDoubleClickListener, BaiduMap.IOnMapStatusChangeListener, BaiduMap.ISnapshotReadyCallback { </span><span style="color: #0000ff;">PRivate</span><span style="color: #000000;"> TextureMapView mMapView; </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> BaiduMap mBaiduMap; </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></summary></span> <span style="color: #808080;">///</span><span style="color: #008000;"> 当前地点击点 </span><span style="color: #808080;">///</span> <span style="color: #808080;"></span> <span style="color: #0000ff;">private</span><span style="color: #000000;"> LatLng currentPt; </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> touchType; </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></summary></span> <span style="color: #808080;">///</span><span style="color: #008000;"> 用于显示地图状态的面板 </span><span style="color: #808080;">///</span> <span style="color: #808080;"></span> <span style="color: #0000ff;">private</span><span style="color: #000000;"> TextView mStateBar; </span><span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">override</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> OnCreate(Bundle savedInstanceState) { </span><span style="color: #0000ff;">base</span><span style="color: #000000;">.OnCreate(savedInstanceState); SetContentView(Resource.Layout.demo06_mapcontrol); mMapView </span>= FindViewById<texturemapview><span style="color: #000000;">(Resource.Id.bmapView); mBaiduMap </span>=<span style="color: #000000;"> mMapView.Map; mBaiduMap.SetMapStatus(MapStatusUpdateFactory.NewLatLng(MainActivity.HeNanUniversity)); mStateBar </span>= FindViewById<textview><span style="color: #000000;">(Resource.Id.state); mBaiduMap.SetOnMapClickListener(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">); mBaiduMap.SetOnMapLongClickListener(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">); mBaiduMap.SetOnMapDoubleClickListener(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">); mBaiduMap.SetOnMapStatusChangeListener(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">); </span><span style="color: #0000ff;">var</span> btnZoom = FindViewById<button><span style="color: #000000;">(Resource.Id.zoombutton); btnZoom.Click </span>+= <span style="color: #0000ff;">delegate</span><span style="color: #000000;"> { </span><span style="color: #008000;">//</span><span style="color: #008000;">处理缩放 sdk 缩放级别范围: [3.0, 19.0]</span> EditText t = FindViewById<edittext><span style="color: #000000;">(Resource.Id.zoomlevel); </span><span style="color: #0000ff;">try</span><span style="color: #000000;"> { </span><span style="color: #0000ff;">float</span> zoomLevel = <span style="color: #0000ff;">float</span><span style="color: #000000;">.Parse(t.Text); MapStatusUpdate u </span>=<span style="color: #000000;"> MapStatusUpdateFactory.ZoomTo(zoomLevel); mBaiduMap.AnimateMapStatus(u); } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> { Toast.MakeText(</span><span style="color: #0000ff;">this</span>, <span style="color: #800000;">"</span><span style="color: #800000;">请输入正确的缩放级别</span><span style="color: #800000;">"</span><span style="color: #000000;">, ToastLength.Short).Show(); } UpdateMapState(); }; </span><span style="color: #0000ff;">var</span> btnRotate = FindViewById<button><span style="color: #000000;">(Resource.Id.rotatebutton); btnRotate.Click </span>+= <span style="color: #0000ff;">delegate</span><span style="color: #000000;"> { </span><span style="color: #008000;">//</span><span style="color: #008000;">处理旋转。旋转角范围:-180~180 , 单位:度,逆时针旋转</span> EditText t = FindViewById<edittext><span style="color: #000000;">(Resource.Id.rotateangle); </span><span style="color: #0000ff;">try</span><span style="color: #000000;"> { </span><span style="color: #0000ff;">int</span> rotateAngle = <span style="color: #0000ff;">int</span><span style="color: #000000;">.Parse(t.Text); MapStatus ms </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> MapStatus.Builder(mBaiduMap.MapStatus).Rotate(rotateAngle).Build(); MapStatusUpdate u </span>=<span style="color: #000000;"> MapStatusUpdateFactory.NewMapStatus(ms); mBaiduMap.AnimateMapStatus(u); } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> { Toast.MakeText(</span><span style="color: #0000ff;">this</span>, <span style="color: #800000;">"</span><span style="color: #800000;">请输入正确的旋转角度</span><span style="color: #800000;">"</span><span style="color: #000000;">, ToastLength.Short).Show(); } UpdateMapState(); }; </span><span style="color: #0000ff;">var</span> btnOverlook = FindViewById<button><span style="color: #000000;">(Resource.Id.overlookbutton); btnOverlook.Click </span>+= <span style="color: #0000ff;">delegate</span><span style="color: #000000;"> { </span><span style="color: #008000;">//</span><span style="color: #008000;">处理俯视。俯角范围:-45~0, 单位:度</span> EditText t = FindViewById<edittext><span style="color: #000000;">(Resource.Id.overlookangle); </span><span style="color: #0000ff;">try</span><span style="color: #000000;"> { </span><span style="color: #0000ff;">int</span> overlookAngle = <span style="color: #0000ff;">int</span><span style="color: #000000;">.Parse(t.Text); MapStatus ms </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> MapStatus.Builder(mBaiduMap.MapStatus).Overlook(overlookAngle).Build(); MapStatusUpdate u </span>=<span style="color: #000000;"> MapStatusUpdateFactory.NewMapStatus(ms); mBaiduMap.AnimateMapStatus(u); } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> { Toast.MakeText(</span><span style="color: #0000ff;">this</span>, <span style="color: #800000;">"</span><span style="color: #800000;">请输入正确的俯角</span><span style="color: #800000;">"</span><span style="color: #000000;">, ToastLength.Short).Show(); } UpdateMapState(); }; </span><span style="color: #0000ff;">var</span> btnSaveScreen = FindViewById<button><span style="color: #000000;">(Resource.Id.savescreen); btnSaveScreen.Click </span>+= <span style="color: #0000ff;">delegate</span><span style="color: #000000;"> { </span><span style="color: #008000;">//</span><span style="color: #008000;"> 截图(在SnapshotReadyCallback中保存图片到sd卡)</span> mBaiduMap.Snapshot(<span style="color: #0000ff;">this</span><span style="color: #000000;">); Toast.MakeText(</span><span style="color: #0000ff;">this</span>, <span style="color: #800000;">"</span><span style="color: #800000;">正在截取屏幕图片...</span><span style="color: #800000;">"</span><span style="color: #000000;">, ToastLength.Short).Show(); UpdateMapState(); }; } </span><span style="color: #0000ff;">#region</span> 实现BaiduMap.IOnMapClickListener接口 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> OnMapClick(LatLng p0) { touchType </span>= <span style="color: #800000;">"</span><span style="color: #800000;">单击</span><span style="color: #800000;">"</span><span style="color: #000000;">; currentPt </span>=<span style="color: #000000;"> p0; UpdateMapState(); } </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span><span style="color: #000000;"> OnMapPoiClick(MapPoi p0) { </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 实现BaiduMap.IOnMapLongClickListener接口 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> OnMapLongClick(LatLng p0) { touchType </span>= <span style="color: #800000;">"</span><span style="color: #800000;">长按</span><span style="color: #800000;">"</span><span style="color: #000000;">; currentPt </span>=<span style="color: #000000;"> p0; UpdateMapState(); } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 实现BaiduMap.IOnMapDoubleClickListener接口 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> OnMapDoubleClick(LatLng p0) { touchType </span>= <span style="color: #800000;">"</span><span style="color: #800000;">双击</span><span style="color: #800000;">"</span><span style="color: #000000;">; currentPt </span>=<span style="color: #000000;"> p0; UpdateMapState(); } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 实现BaiduMap.IOnMapStatusChangeListener接口 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> OnMapStatusChange(MapStatus p0) { UpdateMapState(); } </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> OnMapStatusChangeFinish(MapStatus p0) { UpdateMapState(); } </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> OnMapStatusChangeStart(MapStatus p0) { UpdateMapState(); } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 实现BaiduMap.ISnapshotReadyCallback接口 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> OnSnapshotReady(Bitmap p0) { </span><span style="color: #0000ff;">string</span> file = <span style="color: #800000;">"</span><span style="color: #800000;">/mnt/sdcard/test.png</span><span style="color: #800000;">"</span><span style="color: #000000;">; FileStream outX; </span><span style="color: #0000ff;">try</span><span style="color: #000000;"> { outX </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> FileStream(file, FileMode.Create); </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (p0.Compress( Bitmap.CompressFormat.Png, </span><span style="color: #800080;">100</span><span style="color: #000000;">, outX)) { outX.Flush(); outX.Close(); } Toast.MakeText(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">, </span><span style="color: #800000;">"</span><span style="color: #800000;">屏幕截图成功,图片保存在: </span><span style="color: #800000;">"</span> +<span style="color: #000000;"> file.ToString(), ToastLength.Short).Show(); } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (FileNotFoundException e) { </span><span style="color: #0000ff;">throw</span><span style="color: #000000;"> e; } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (IOException e) { </span><span style="color: #0000ff;">throw</span><span style="color: #000000;"> e; } } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></summary></span> <span style="color: #808080;">///</span><span style="color: #008000;"> 更新地图状态显示面板 </span><span style="color: #808080;">///</span> <span style="color: #808080;"></span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> UpdateMapState() { </span><span style="color: #0000ff;">if</span> (mStateBar == <span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">return</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">string</span> state = <span style="color: #800000;">""</span><span style="color: #000000;">; </span><span style="color: #0000ff;">if</span> (currentPt == <span style="color: #0000ff;">null</span><span style="color: #000000;">) { state </span>= <span style="color: #800000;">"</span><span style="color: #800000;">点击、长按、双击地图以获取经纬度和地图状态</span><span style="color: #800000;">"</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> { state </span>= <span style="color: #0000ff;">string</span>.Format(touchType + <span style="color: #800000;">"</span><span style="color: #800000;">,当前经度:{0:f6} 当前纬度:{1:f6}</span><span style="color: #800000;">"</span><span style="color: #000000;">, currentPt.Longitude, currentPt.Latitude); } state </span>+= <span style="color: #800000;">"</span><span style="color: #800000;">\n</span><span style="color: #800000;">"</span><span style="color: #000000;">; MapStatus ms </span>=<span style="color: #000000;"> mBaiduMap.MapStatus; state </span>+= <span style="color: #0000ff;">string</span>.Format(<span style="color: #800000;">"</span><span style="color: #800000;">zoom={0:f2},rotate={1:d},overlook={2:d}</span><span style="color: #800000;">"</span><span style="color: #000000;">, ms.Zoom, (</span><span style="color: #0000ff;">int</span>)ms.Rotate, (<span style="color: #0000ff;">int</span><span style="color: #000000;">)ms.Overlook); mStateBar.Text </span>=<span style="color: #000000;"> state; } </span><span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">override</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> OnPause() { mMapView.OnPause(); </span><span style="color: #0000ff;">base</span><span style="color: #000000;">.OnPause(); } </span><span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">override</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> OnResume() { mMapView.OnResume(); </span><span style="color: #0000ff;">base</span><span style="color: #000000;">.OnResume(); } </span><span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">override</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> OnDestroy() { mMapView.OnDestroy(); </span><span style="color: #0000ff;">base</span><span style="color: #000000;">.OnDestroy(); } } }</span></button></edittext></button></edittext></button></edittext></button></textview></texturemapview>
3. Modify MainActivity.cs
Add the following code in the demos field definition of the MainActivity.cs file.
<span style="color: #008000;"> //</span><span style="color: #008000;">示例6--地图操作功能</span> <span style="color: #0000ff;">new</span> DemoInfo<activity><span style="color: #000000;">(Resource.String.demo_title_control, Resource.String.demo_desc_control, </span><span style="color: #0000ff;">new</span> Demo06MapControl()),</activity>
Run and observe the results.

根据美国司法部的解释,蓝色警报旨在提供关于可能对执法人员构成直接和紧急威胁的个人的重要信息。这种警报的目的是及时通知公众,并让他们了解与这些罪犯相关的潜在危险。通过这种主动的方式,蓝色警报有助于增强社区的安全意识,促使人们采取必要的预防措施以保护自己和周围的人。这种警报系统的建立旨在提高对潜在威胁的警觉性,并加强执法机构与公众之间的沟通,以共尽管这些紧急通知对我们社会至关重要,但有时可能会对日常生活造成干扰,尤其是在午夜或重要活动时收到通知时。为了确保安全,我们建议您保持这些通知功能开启,但如果

Android中的轮询是一项关键技术,它允许应用程序定期从服务器或数据源检索和更新信息。通过实施轮询,开发人员可以确保实时数据同步并向用户提供最新的内容。它涉及定期向服务器或数据源发送请求并获取最新信息。Android提供了定时器、线程、后台服务等多种机制来高效地完成轮询。这使开发人员能够设计与远程数据源保持同步的响应式动态应用程序。本文探讨了如何在Android中实现轮询。它涵盖了实现此功能所涉及的关键注意事项和步骤。轮询定期检查更新并从服务器或源检索数据的过程在Android中称为轮询。通过

为了提升用户体验并防止数据或进度丢失,Android应用程序开发者必须避免意外退出。他们可以通过加入“再次按返回退出”功能来实现这一点,该功能要求用户在特定时间内连续按两次返回按钮才能退出应用程序。这种实现显著提升了用户参与度和满意度,确保他们不会意外丢失任何重要信息Thisguideexaminesthepracticalstepstoadd"PressBackAgaintoExit"capabilityinAndroid.Itpresentsasystematicguid

1.java复杂类如果有什么地方不懂,请看:JAVA总纲或者构造方法这里贴代码,很简单没有难度。2.smali代码我们要把java代码转为smali代码,可以参考java转smali我们还是分模块来看。2.1第一个模块——信息模块这个模块就是基本信息,说明了类名等,知道就好对分析帮助不大。2.2第二个模块——构造方法我们来一句一句解析,如果有之前解析重复的地方就不再重复了。但是会提供链接。.methodpublicconstructor(Ljava/lang/String;I)V这一句话分为.m

如何将WhatsApp聊天从Android转移到iPhone?你已经拿到了新的iPhone15,并且你正在从Android跳跃?如果是这种情况,您可能还对将WhatsApp从Android转移到iPhone感到好奇。但是,老实说,这有点棘手,因为Android和iPhone的操作系统不兼容。但不要失去希望。这不是什么不可能完成的任务。让我们在本文中讨论几种将WhatsApp从Android转移到iPhone15的方法。因此,坚持到最后以彻底学习解决方案。如何在不删除数据的情况下将WhatsApp

原因:1、安卓系统上设置了一个JAVA虚拟机来支持Java应用程序的运行,而这种虚拟机对硬件的消耗是非常大的;2、手机生产厂商对安卓系统的定制与开发,增加了安卓系统的负担,拖慢其运行速度影响其流畅性;3、应用软件太臃肿,同质化严重,在一定程度上拖慢安卓手机的运行速度。

1.启动ida端口监听1.1启动Android_server服务1.2端口转发1.3软件进入调试模式2.ida下断2.1attach附加进程2.2断三项2.3选择进程2.4打开Modules搜索artPS:小知识Android4.4版本之前系统函数在libdvm.soAndroid5.0之后系统函数在libart.so2.5打开Openmemory()函数在libart.so中搜索Openmemory函数并且跟进去。PS:小知识一般来说,系统dex都会在这个函数中进行加载,但是会出现一个问题,后

1.自动化测试自动化测试主要包括几个部分,UI功能的自动化测试、接口的自动化测试、其他专项的自动化测试。1.1UI功能自动化测试UI功能的自动化测试,也就是大家常说的自动化测试,主要是基于UI界面进行的自动化测试,通过脚本实现UI功能的点击,替代人工进行自动化测试。这个测试的优势在于对高度重复的界面特性功能测试的测试人力进行有效的释放,利用脚本的执行,实现功能的快速高效回归。但这种测试的不足之处也是显而易见的,主要包括维护成本高,易发生误判,兼容性不足等。因为是基于界面操作,界面的稳定程度便成了


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Atom editor mac version download
The most popular open source editor

Dreamweaver Mac version
Visual web development tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.
