web-dev-qa-db-ja.com

Google Maps V2のマーカーでアイコンのサイズを指定する方法Android

GoogleマップV2のマップを使用するアプリで、このマップでは各マーカーにアイコンを追加しようとしていますが、マーカーはアイコンのサイズを取っているため、アイコンが煙に見えます。 dpでマーカーのサイズを指定する方法はありますか?

25
Mohammad Haidar

現在、マーカーサイズを変更することはできないと思うので、マーカーイメージをdrawableに追加して、次のようなサイズに変更できます。

int height = 100;
 int width = 100;
 BitmapDrawable bitmapdraw=(BitmapDrawable)getResources().getDrawable(R.mipmap.marker);
  Bitmap b=bitmapdraw.getBitmap();
Bitmap smallMarker = Bitmap.createScaledBitmap(b, width, height, false);

アイコンを追加して、マーカーを追加します

                map.addMarker(new MarkerOptions()
                        .position(POSITION)
                        .title("Your title")
                        .icon(BitmapDescriptorFactory.fromBitmap(smallMarker))
                );
87
User Learning

承認済みの回答は古い(getDrawable()、APIレベル22以降廃止されている)ため、少し変更しました:

int height = 100;
int width = 100;
Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.FOO);
Bitmap smallMarker = Bitmap.createScaledBitmap(b, width, height, false);
BitmapDescriptor smallMarkerIcon = BitmapDescriptorFactory.fromBitmap(smallMarker);

そしてMarkerOptionでそれを適用します

.icon(smallMarkerIcon)
1
O95

この質問 で答えを探すことができると思います。ここでは、動的なbitmapを作成して、特定の幅と高さでカスタムマーカーを作成する方法を既に説明しています。

0

[編集:フォーマット]

Drawable circleDrawable = getResources().getDrawable(R.mipmap.primarysplitter);
            bitmapDescriptor=getMarkerIconFromDrawable(circleDrawable);


private BitmapDescriptor getMarkerIconFromDrawable(Drawable drawable) {
    Canvas canvas = new Canvas();
    Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
    canvas.setBitmap(bitmap);
    drawable.setBounds(0, 0, (int)getResources().getDimension(R.dimen._30sdp), (int)getResources().getDimension(R.dimen._30sdp));
    drawable.draw(canvas);
    return BitmapDescriptorFactory.fromBitmap(bitmap);
}
0
Rohit Bansal