我在百度地图上遇到的问题和这个 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);
저는 이 질문에 대한 답을 아주 아주 우연한 시도를 통해 찾았습니다. 다음에서 영감을 얻었습니다. 사용자 정의 지도 핀이 너무 크게 보이고 픽셀화되어 있습니까?
아래 사람은 최우수 기여자이며 아마도 Google 엔지니어일 것입니다. 그의 답변(번역됨):
바이두맵이 구글맵을 표절했다는 자세로 시도해봤습니다(내 이미지 리소스의 길이와 너비가 동일하지 않은 것으로 밝혀졌기 때문에)...
물론
32*32 px
으로 설정하고 나면 아이콘이 아주 선명해집니다!64*64 px
,128*128 px
도 문제 없습니다.저는 Baidu Maps용 Android SDK를 연구한 적이 없습니다. 설명서를 읽어보니 그런 방법이 있습니다
public static BitmapDescriptor fromBitmap(Bitmap image)
리소스에서
Bitmap
개체를 직접 생성할 수 있는지 확인하고, 크기를 지정하고, 더 작은 크기의 큰 이미지를 로드하여 개선이 있는지 확인하세요.