【发布时间】:2017-05-15 21:16:18
【问题描述】:
我一直在关注this tutorial,了解如何为 Google 地图制作自定义标记,我已经完成了这部分工作。但是,我必须更改一些代码才能调整我在标记上使用的图像的大小。
这是我用来调整大小的方法:
private void UpdateMarkers(float zoom)
{
// Max zoom out => zoom = 3
// Max zoom in => zoom = 21
int dimension = (int)zoom * 10;
if (dimension == currentDimension)
return;
currentDimension = dimension;
map.Clear();
foreach (var pin in customPins)
{
var immutableBitmap = BitmapFactory.DecodeResource(Context.Resources, Resource.Drawable.icon);
var mutableBitmap = immutableBitmap.Copy(Bitmap.Config.Argb8888, true);
mutableBitmap.Height = dimension;
mutableBitmap.Width = dimension;
BitmapDescriptorFactory.FromBitmap(mutableBitmap);
var img = BitmapDescriptorFactory.FromBitmap(mutableBitmap);
var marker = new MarkerOptions();
marker.SetPosition(new LatLng(pin.Pin.Position.Latitude, pin.Pin.Position.Longitude));
marker.SetTitle(pin.Pin.Label);
marker.SetSnippet(pin.Pin.Address);
marker.SetIcon(img);
map.AddMarker(marker);
}
}
在原始代码中,我会做这样的事情
var img = BitmapDescriptorFactory.FromResource(Resource.Drawable.icon);
这很有效。但是我想调整图像的大小,所以我找到了一种方法来做到这一点。
知道发生了什么吗?
【问题讨论】:
标签: c# android google-maps xamarin xamarin.android