1

我想我对这个链接上的帖子有同样的问题 不同的标记显示相同的信息窗口内容 android google map v2

我目前正在开发一个集成 Google Maps v2 的应用程序,以允许用户拍照并自动在地图上绘制标记。

我有一个工作的 InfoWindowAdapter 但似乎当我设置位图时,如下所示:

ImageView ivIcon = ((ImageView)myContentsView.findViewById(R.id.iconImg));
ivIcon.setImageBitmap(getResizedBitmap(myBitmap.getBp(),100,100));

当使用我的相机拍摄多张照片时(这意味着它将在地图上绘制相应的标记),这些标记都共享相同的图像,这是从相机拍摄的最新图像。我认为通过检查位图对象名称的差异来创建一个类可以解决问题,但它没有。

申请时似乎:

myMap.setInfoWindowAdapter(new MyInfoWindowAdapter());

它适用于所有标记。

如何让每个标记都有自己的自定义信息窗口适配器?

谢谢!

==========================================编辑========= =========================

我有一个允许用户拍照的应用程序,它还将在图像捕获位置的地图上绘制一个标记。标记将有一个自定义信息窗口。我尝试了解决方案,但它们对我来说很模糊。

你介意解释一下你对你的代码做了什么,比如:

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); 时,所有标记都具有相同的布局,因此具有相同的图片(用户拍摄的最后一张照片!),这不是我想要的。

任何帮助都感激不尽!谢谢

4

0 回答 0