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

我在百度地图上遇到的问题和这个 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 サイズに変更します (場合によっては 2 倍、64px)。
したがって、画像ファイルを 32*32 px に設定する必要があります。より小さいアイコンが必要な場合は、側面の透明ピクセルを維持する必要があります。
(アイコンを変更する場合は、元の画像がキャッシュに残り、変更が反映されない可能性があるため、新しいファイル名を使用することをお勧めします。)

Baidu Map が Google Map を盗用したというスタンスで試してみました (画像リソースの長さと幅が等しくないことが判明したため)...

案の定、32*32 pxに設定すると、アイコンが非常に鮮明になります。 64*64 px128*128 pxも問題ありません。

いいねを押す +0
大家讲道理

Baidu Maps の Android SDK を勉強したことがありませんでしたが、ドキュメントを読んだところ、そのような方法がありました

public static BitmapDescriptor fromBitmap(Bitmap image)

Bitmap オブジェクトをリソースから自分で作成し、サイズを指定して、大きな画像を小さいサイズでロードして改善が見られるかどうかを確認してください。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!