java - BitmapDescriptor 得到的百度地图 Marker 显示模糊
PHP中文网
PHP中文网 2017-04-18 09:57:17
0
2
664

我在百度地图上遇到的问题和这个 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中文网

认证高级PHP讲师

모든 응답(2)
伊谢尔伦

저는 이 질문에 대한 답을 아주 아주 우연한 시도를 통해 찾았습니다. 다음에서 영감을 얻었습니다. 사용자 정의 지도 핀이 너무 크게 보이고 픽셀화되어 있습니까?

아래 사람은 최우수 기여자이며 아마도 Google 엔지니어일 것입니다. 그의 답변(번역됨):

Google 지도는 모든 아이콘의 크기를 32*32 px 크기로 조정합니다(경우에 따라 두 배, 64px).
따라서 이미지 파일을 32*32 px로 설정해야 합니다. 더 작은 아이콘을 원한다면 측면에 투명한 픽셀을 유지해야 합니다.
(아이콘을 변경하는 경우 원본 이미지가 캐시에 남아 변경 사항이 표시되지 않을 수 있으므로 새 파일 이름을 사용하는 것이 가장 좋습니다.)

바이두맵이 구글맵을 표절했다는 자세로 시도해봤습니다(내 이미지 리소스의 길이와 너비가 동일하지 않은 것으로 밝혀졌기 때문에)...

물론 32*32 px으로 설정하고 나면 아이콘이 아주 선명해집니다! 64*64 px, 128*128 px도 문제 없습니다.

大家讲道理

저는 Baidu Maps용 Android SDK를 연구한 적이 없습니다. 설명서를 읽어보니 그런 방법이 있습니다

public static BitmapDescriptor fromBitmap(Bitmap image)

리소스에서 Bitmap 개체를 직접 생성할 수 있는지 확인하고, 크기를 지정하고, 더 작은 크기의 큰 이미지를 로드하여 개선이 있는지 확인하세요.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿