我在百度地图上遇到的问题和这个 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);
J'ai trouvé la réponse à cette question grâce à une tentative très, très fortuite. Inspiré par ceci : l'épingle de carte personnalisée semble beaucoup trop grande et est pixellisée ?.
Le gars ci-dessous est un Top Contributeur, probablement un ingénieur Google. Sa réponse (traduite) :
Je l'ai essayé avec l'attitude que Baidu Map plagiait Google Map (car il s'avère que la longueur et la largeur de mes ressources d'images ne sont pas égales)...
Effectivement, après l'avoir réglée sur
32*32 px
, l'icône devient extrêmement claire !64*64 px
,128*128 px
ne posent aucun problème non plus.Je n'ai jamais étudié le SDK Android pour Baidu Maps. Après avoir lu la documentation, il existe une telle méthode
.public static BitmapDescriptor fromBitmap(Bitmap image)
Voyez si vous pouvez créer vous-même l'objet
Bitmap
à partir de ressources, spécifiez la taille, chargez la grande image avec une taille plus petite et voyez s'il y aura une amélioration.