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添加到地图中。