首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin-Forms | Android - GroundOverlayOptions格式的参考图片

Xamarin-Forms | Android - GroundOverlayOptions格式的参考图片
EN

Stack Overflow用户
提问于 2017-07-28 13:18:19
回答 1查看 119关注 0票数 1

我正在使用Android.gms.maps类在我的Xamarin Forms应用程序中为安卓手机创建一个自定义渲染器google map。我希望使用GroundOverlayOptions将图像添加到我的地图

代码语言:javascript
复制
    GroundOverlayOptions newarkMap = new GroundOverlayOptions()
    .InvokeImage(BitmapDescriptorFactory.FromResource(/*My image?*/))
    .position(e.Point, 8600f, 6500f);
     map.AddGroundOverlay(newarkMap);

我需要在我的代码的注释部分中的图像资源ID。如何查找镜像的资源ID?有没有替代的方法呢?

EN

回答 1

Stack Overflow用户

发布于 2017-07-28 13:58:37

通过使用BitmapDescriptorFactory,您可以使用多个选项来获取BitmapDescriptor

  • FromResource
  • FromAsset
  • FromPath
  • FromBitmap

下面是几个例子:

要使用FromResource,图像必须在您的资源树中,假设在Xamarin子文件夹中,Drawable将为您生成一个Resource.Drawable.XXXXX形式的id描述符,它将是一个整数常量:

代码语言:javascript
复制
var overlayOption = new GroundOverlayOptions()
    .InvokeImage(BitmapDescriptorFactory.FromResource(Resource.Drawable.overlayface2))
    .Position(e.Point, 5000f, 5000f);

FromAsset从"Assets“子文件夹加载图像:

代码语言:javascript
复制
var overlayOption = new GroundOverlayOptions()
    .InvokeImage(BitmapDescriptorFactory.FromAsset("OverlayFace.png"))
    .Position(e.Point, 5000f, 5000f);

FromPath从任意路径加载图像,因此您可以加载您下载并存储在应用程序缓存目录中的图像,或者存储在SD卡上的图像,等等。

代码语言:javascript
复制
var overlayOption3 = new GroundOverlayOptions()
    .InvokeImage(BitmapDescriptorFactory.FromPath("/mnt/sdcard/Download/OverlayFace.png"))
    .Position(e.Point, 5000f, 5000f);

注意:人们遇到的最大的问题是没有正确设置图像的大小,它是以千米为单位的。不是像素,不是英里,等等。

注意:也为了速度,保持你的图像大小在2的幂,否则地图库将不得不在每次加载覆盖图时将其转换为2的幂图像(内存和性能影响)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45365375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档