我认为此链接上的帖子存在同样的问题 Different markers show same infowindow content android google map v2
我目前正在开发一款集成Google Maps v2的应用,允许用户拍照并自动在地图上绘制标记。
我有一个有效的InfoWindowAdapter,但是当我设置一个Bitmap时,你可以看到如下所示:
ImageView ivIcon = ((ImageView)myContentsView.findViewById(R.id.iconImg));
ivIcon.setImageBitmap(getResizedBitmap(myBitmap.getBp(),100,100));
当使用我的相机拍摄多张照片时(这意味着它将在地图上绘制各自的标记),这些标记都共享相同的图像,这是从相机拍摄的最新图像。我认为通过检查Bitmap对象名称的差异来创建一个类可以解决问题,但事实并非如此。
似乎在申请时:
myMap.setInfoWindowAdapter(new MyInfoWindowAdapter());
它适用于所有标记。
如何解决每个标记都有自己的自定义信息窗口适配器的问题?
谢谢!
========================================编辑====== ===========================
我有一个应用程序,允许用户拍摄照片,这些照片也会在地图上绘制一个标记图像捕获位置。标记将具有自定义InfoWindow。我试过这个解决方案,但对我来说很模糊。
你介意解释你对你的代码做了什么,这样做:
googleMap.setInfoWindowAdapter(new InfoWindowAdapter()); 不会影响地图上的所有标记吗?
我目前的CustomInfoBox代码如下:
类MyInfoWindowAdapter实现InfoWindowAdapter {
私人决赛查看myContentsView;
MyInfoWindowAdapter(){
myContentsView = getLayoutInflater().inflate(R.layout.custom_info_window, null);
}
@Override
public View getInfoContents(Marker marker) {
//TextView tvTitle = ((TextView)myContentsView.findViewById(R.id.title));
// tvTitle.setText(marker.getTitle());
TextView tvSnippet = ((TextView)myContentsView.findViewById(R.id.snippet));
tvSnippet.setText(marker.getSnippet());
ImageView ivIcon = ((ImageView)myContentsView.findViewById(R.id.badge));
ivIcon.setImageBitmap(getResizedBitmap(myBitmap.getBp(),100,100));
System.out.println("Custom Info Window: " + myBitmap.getBp());
return myContentsView;
}
@Override
public View getInfoWindow(Marker marker) {
// TODO Auto-generated method stub
return null;
}
}
当我调用googleMap.setInfoWindowAdapter(MyInfoWindowAdapter);时,所有标记都具有相同的布局,因此相同的图片(用户拍摄的最后一张照片!),这不是我想要的。
任何帮助将不胜感激!感谢