Как указать размер значка на маркерах в Google Maps V2 Android

В приложении я можно использовать Карту с Google Maps V2, и на этой карте я пытаюсь добавить маркеры на каждый маркер с помощью значка, но маркер принимает размер значка, который заставляет значок выглядеть дымоходом. Как я могу определить размер маркера в dp, чтобы я мог контролировать, как он выглядит на карте

Ответ 1

В настоящее время я думаю, что мы не можем изменить размер маркера, поэтому вы можете добавить маркерное изображение в 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))
                );

Ответ 2

Я думаю, вы можете найти ответ на этот вопрос, где он уже объяснил, как создать пользовательский маркер с заданной шириной и высотой, создав динамический растровый.

Ответ 3

[edit: форматирование]

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);
}

Ответ 4

Утвержденный ответ устарел (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)