我正在使用Xamarin并使用SimpleMapDemo,我有一个关于将MarkerOptions对象设置为具有不同图标的问题。
这是我目前的代码:
marker1.Icon(SetFeatureDrawable('Icon.png'));
以上代码无效。
我可以帮助您将图标设置为Drawable文件夹中名为'Icon.png'的图标吗?
提前致谢
修改
这是我的代码:
marker1.Icon(BitmapDescriptorFactory.FromResource(Resource.Drawable.monkey));
这是我得到的错误:
Non-invocable member 'Android.Gms.Maps.Model.MarkerOptions.Icon' cannot be used like a method
以下是我尝试设置图标的代码:
marker1.Icon = BitmapDescriptorFactory.FromResource(Resource.Drawable.monkey);
这是我得到的错误:
CS0200: Property or indexer 'Android.Gms.Maps.Model.MarkerOptions.Icon' cannot be assigned to -- it is read only (CS0200)
答案 0 :(得分:3)
请尝试使用此代码:
marker1.InvokeIcon(SetFeatureDrawable('Icon.png'));
通常,Xamarin尝试将Java setter / getters绑定到属性。在这种情况下,虽然MarkerOption.icon
看起来像C#眼睛的属性,但它实际上是一种Java方法。在这种情况下,绑定已将类似属性的Java方法“转换”为MarkerOption.InvokeIcon
,以尝试符合C#设计准则。
答案 1 :(得分:2)
尝试这种方式:
double latitude = 0.0;
double longitude = 0.0;
MarkerOptions mapMarker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Your title will be here");
mapMarker .icon(BitmapDescriptorFactory.fromResource(R.drawable.icon)));
mapView.addMarker(mapMarker );
答案 2 :(得分:2)
尝试这个,使用此我可以将可绘制资源中的自定义图标显示为地图中的标记
MarkerOptions markerOptions = new MarkerOptions();
// Setting position on the MarkerOptions
markerOptions.SetPosition(lt);
markerOptions.InvokeIcon(BitmapDescriptorFactory.FromResource(Resource.Drawable.pin));