Как изменить размер маркеров карты Google на основе карты Google разного уровня масштабирования в Android - PullRequest
0 голосов
/ 21 декабря 2018

Я использовал 5 маркеров на карте Google Android и каждые 5 секунд положение маркера также менялось с анимацией.в этом случае я хочу динамически изменять размер значков в зависимости от уровня масштабирования.

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Просто попробуйте следующий фрагмент кода, он используется для меня.Этот метод возвращает изображение, соответствующее вашему уровню масштабирования и ожидаемой высоте, а также ширине.

public static Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) {
int width = bm.getWidth();
int height = bm.getHeight();
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
return Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
}
0 голосов
/ 21 декабря 2018

Вы можете сделать это, создав растровое изображение с пользовательской высотой

int height = 100;// resize according to your zooming level
int width = 100;// resize according to your zooming level
BitmapDrawable bitmapdraw = (BitmapDrawable)getResources().getDrawable(R.mipmap.marker);
Bitmap b=bitmapdraw.getBitmap();
Bitmap finalMarker= Bitmap.createScaledBitmap(b, width, height, false);

И добавить это растровое изображение на карту.

 map.addMarker(new MarkerOptions()
                .position(POSITION)
                .title("Your title")
                .icon(BitmapDescriptorFactory.fromBitmap(finalMarker))
        );

Надеюсь, это работает!

...