Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将google地图标记异步添加到地图?_Java_Android_Google Maps - Fatal编程技术网

Java 如何将google地图标记异步添加到地图?

Java 如何将google地图标记异步添加到地图?,java,android,google-maps,Java,Android,Google Maps,所以我有一个小问题,我似乎无法解决,也无法解决 我有两个功能 只需在地图上添加一个谷歌地图标记 private void setMarker() { Marker marker = mMap.addMarker(new MarkerOptions() .position(latlng) .snippet(artesao.getId()) .icon(BitmapDescriptorFactory.defaultMar

所以我有一个小问题,我似乎无法解决,也无法解决

我有两个功能

只需在地图上添加一个谷歌地图标记

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)对它进行了测试

另一方面,如果我在imageLoader.loadImage()函数外部调用相同的setMarker()函数,但在downloadMarker()函数内部调用,它将添加标记

我认为这是由于函数是异步的,但我真的不明白为什么会有这样的问题


提前感谢。

是否在主线程上调用了
onload complete
?logcat中有相关的语句吗?这是一个异步函数,所以可能不是。Logcat不返回任何错误。它只是没有将maker添加到地图中。