cari

Rumah  >  Soal Jawab  >  teks badan

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

我在百度地图上遇到的问题和这个 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);
PHP中文网PHP中文网2810 hari yang lalu666

membalas semua(2)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:59:17

    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):

    Peta Google mengubah saiz semua ikon kepada saiz 32*32 px (kadangkala dua kali ganda, 64px).
    Jadi anda harus menetapkan fail imej anda kepada 32*32 px. Jika anda mahukan ikon yang lebih kecil, anda harus menyimpan piksel lutsinar di sisi.
    (Jika anda menukar ikon, sebaiknya gunakan nama fail baharu, kerana imej asal mungkin kekal dalam cache dan anda tidak akan melihat perubahan itu.)

    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.

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:59:17

    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.

    balas
    0
  • Batalbalas