我在百度地图上遇到的问题和这个 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);
Saya menemui jawapan kepada soalan ini melalui percubaan yang sangat-sangat kebetulan. Diilhamkan oleh ini: Pin peta tersuai kelihatan terlalu besar dan berpiksel?.
Lelaki di bawah ialah Penyumbang Terbanyak, mungkin seorang jurutera Google. Jawapannya (diterjemahkan):
Saya mencubanya dengan sikap Baidu Map memplagiat Google Map (kerana ternyata panjang dan lebar sumber imej saya tidak sama)...
Sudah pasti, selepas menetapkannya kepada
32*32 px
, ikon menjadi sangat jelas!64*64 px
,128*128 px
tiada masalah juga.Saya tidak pernah mempelajari SDK Android untuk Peta Baidu Selepas membaca dokumentasi, terdapat kaedah sedemikian
public static BitmapDescriptor fromBitmap(Bitmap image)
Lihat jika anda boleh mencipta objek
Bitmap
sendiri daripada sumber, nyatakan saiz, muatkan imej besar dengan saiz yang lebih kecil dan lihat jika akan ada peningkatan.