Как я могу добавить маркер карты Google на карту асинхронно? - PullRequest
0 голосов
/ 24 июня 2018

так что у меня есть небольшая проблема, которую я просто не могу решить, и я просто не могу ее понять.

У меня есть 2 функции.

Однапросто добавляет маркер Google Maps на карту.

private void setMarker() {
    Marker marker = mMap.addMarker(new MarkerOptions()
            .position(latlng)
            .snippet(artesao.getId())
            .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED))
            .title(artesao.getName()));
}

Другой, загружает изображение из URI, преобразует его в растровое изображение и добавляет холст.Я хочу передать это изображение в функцию setMarker () после загрузки, чтобы заменить обычный красный маркер Google Maps.

private void downloadMarker() {
    imageLoader.loadImage(artigo.getPhotoURL(), new SimpleImageLoadingListener() {
        @Override
        public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {

            Bitmap.Config conf = Bitmap.Config.ARGB_8888;
            Bitmap bmp = Bitmap.createBitmap(80, 80, conf);
            Canvas canvas1 = new Canvas(bmp);

            Paint color = new Paint();
            color.setTextSize(35);
            color.setColor(Color.BLACK);


            canvas1.drawBitmap(loadedImage, 0,0, color);
            canvas1.drawText("User Name!", 30, 40, color);
            img.setImageBitmap(loadedImage);

            setMarker();
        }
    });
}

Большинство функций в этой функции не имеют значения

Эта функция будет работать, и она вызовет setMarker (), но сам маркер не будет добавлен на карту, хотя все остальное внутри указанной функции будет работать, как и ожидалось.Изображение также загружается, как я тестировал его с помощью img.setImageBitmap (bmp), который вы видите выше

С другой стороны, если я вызываю ту же функцию setMarker () вне imageLoader.Функция loadImage (), но внутри функции downloadMarker () добавит маркер.

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

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...