33

アプリを新しい Google Maps API v2 に移植しようとしていますが、マーカーのサイズを変更する方法が見つかりません (一部のマーカーはデフォルトよりも小さいです)。

v1 では、マップに追加する前Drawableにスケーリングした を使用しました。setBounds()

しかし、現在、v2 では . を使用できませんDrawable。私は(で生成された)MarkerOptions().icon()だけを取るを使用する必要があります。BitmapDescriptorBitmapDescriptorFactory

BitmapDescriptorリファレンスを見ると、サイズの設定や変更には対応していないようです。

それで、私は何かを見逃しましたか、それともこの API バージョンでカスタム マーカーのサイズを設定することは単に不可能ですか?

4

5 に答える 5

17

私が見つけた最善の解決策は、Bitmapとして追加する直前にのサイズを変更することMarkerです。たとえば、私のコードでは、LevelListDrawableいくつかの多重解像度 を参照する を使用していますDrawable。ハーフサイズのマーカーが必要なので、次のようにします。

LevelListDrawable d=(LevelListDrawable) getResources().getDrawable(R.drawable.estado_variable);
d.setLevel(1234);
BitmapDrawable bd=(BitmapDrawable) d.getCurrent();
Bitmap b=bd.getBitmap();
Bitmap bhalfsize=Bitmap.createScaledBitmap(b, b.getWidth()/2,b.getHeight()/2, false);
mapa.addMarker(new MarkerOptions()
        .position(POSITION)
        .title("Title")
        .icon(BitmapDescriptorFactory.fromBitmap(bhalfsize))
        );

このようにして、必要に応じてサイズをDrawables変換してサイズを変更するだけで、さまざまなサイズのマーカーを取得しながら、使い続けることができBitmapます。

于 2013-02-14T11:07:36.213 に答える
6

それを行う唯一の方法は、カスタム マーカー イメージを設定することです。

API リファレンスから: マーカーの色以外を変更したい場合は、アイコンと呼ばれるカスタム マーカー イメージを設定できます。カスタム アイコンは常に として設定されBitmapDescriptor、クラスの 4 つのメソッドのいずれかを使用して定義されBitmapDescriptorFactoryます。

于 2013-02-13T10:50:29.933 に答える