为每个标记创建自定义InfoWindowBox

时间:2014-04-07 13:44:32

标签: android android-camera marker infobox

我认为此链接上的帖子存在同样的问题 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);时,所有标记都具有相同的布局,因此相同的图片(用户拍摄的最后一张照片!),这不是我想要的。

任何帮助将不胜感激!感谢

0 个答案:

没有答案