BitmapDescriptor 得到的百度地图 Marker 显示模糊

发布于 2022-09-03 14:44:08 字数 722 浏览 14 评论 0

我在百度地图上遇到的问题和这个 SO 问题很像,但是它的回答没有解决我的问题。

我想用自己的 res/drawable 资源来作为百度地图上的 Marker。但是这样使用后发现图片(icon_marker.png)加载出来边缘很模糊,而且即使我使用更大的图片,这个 Marker 边缘仍然是模糊的(只是被放大了)。

我已经尝试了在包括 hdpi, mdpi, xhdpi, xxhdpi, xxxhdpi 的各个文件夹中都放这个图片的各种版本,或者只在那个没有后缀的 drawable 文件夹下放一个 png,但仍然是模糊的。大图大模糊,小图小模糊。

以下是我用百度地图显示 Marker 的代码。请问我的问题出在了哪里?

BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.icon_marker);
LatLng latLng = ...;
OverlayOptions option = new MarkerOptions()
  .position(latLng)
  .icon(bitmap);
mBaiduMap.addOverlay(option);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

獨角戲 2022-09-10 14:44:08

我通过非常非常巧合的尝试找到了这个问题的答案。灵感来自于此:Custom map pin appears way too large and is pixelated?

下面那位仁兄是 Top Contributor,估计是 Google 工程师了吧。他的回复(翻译):

谷歌地图把所有的图标调整到 32*32 px 的大小(有时候是两倍,64px)。
所以你应该把你的图像文件设置成 32*32 px。如果你想要个更小的图标,应当保留边上的透明像素。
(如果你更改了图标,最好使用一个新的文件名,因为原来的图可能会留在缓存里以致你看不到改变。)

我怀着对百度地图抄袭 Google Map 深信不疑的态度尝试了一下(因为原来我的图片资源长宽是不等的)……

果然,设置成 32*32 px 后,图标变得清晰无比!64*64 px128*128 px 也没问题。

假装不在乎 2022-09-10 14:44:08

没研究过 Android SDK for 百度地图,看了下文档,有这么个方法

public static BitmapDescriptor fromBitmap(Bitmap image)

你看能不能自己从资源创建 Bitmap 对象,指定大小,用较小的尺寸加载大图,看会不会有改善。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文