GWT:使用Google Maps V1将点击处理程序添加到infoWindow

时间:2015-03-17 17:22:24

标签: java google-maps gwt infowindow

在我的GWT项目中,我有一张地图,当用户点击我在地图上绘制的各种标记之一时,会显示一个信息窗口。一旦我有了坐标mark_coords,这就是我添加infoWindow的方式:

                        map.getInfoWindow().open(mark_coords,
                                new InfoWindowContent(name +  "<br />" + description));

我想在infoWindow中添加一个可点击的图标。但是,如果没有各种库,我似乎无法找到有关如何使用Google Maps V1执行此操作的任何文档。

如果有人有任何建议,我们将不胜感激!

1 个答案:

答案 0 :(得分:0)

您可以使用ImageView添加XML文件,并为ImageView添加setOnClickListener

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <ImageView
        android:id="+@id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="5dp"
        android:adjustViewBounds="true"
        android:src="@drawable/ic_launcher"/>
</LinearLayout>

然后您可以创建InfoWindowAdapter,并覆盖getInfoContents方法。

  class MyInfoWindowAdapter implements InfoWindowAdapter {

      private final View myContentsView;

      MyInfoWindowAdapter() {
          myContentsView = getLayoutInflater().inflate(R.layout.custom_info_contents, null);
      }

      @Override
      public View getInfoContents(Marker marker) {
         ImageView imageView = ((ImageView)myContentsView.findViewById(R.id.imageView))
         imageView.setOnClickListener(new OnClickListener() {
             @Override
             public void onClick(View arg0) {

             }
          });

         return myContentsView;
      }

      @Override
      public View getInfoWindow(Marker marker) {
       // TODO Auto-generated method stub
       return null;
      }

 }

最后,您可以map.setInfoWindowAdapter(new MyInfoWindowAdapter());拨打自定义InfoWindow。

您可以访问this short tutorial了解详情。