Search code examples
androidinfowindowandroid-maps-v2

custom info window adapter with custom data in map v2


I want to make custom info window adapter in map v2 in android as like below.

enter image description here

I have seen below link but doesn't get more.

1,2,3,

below is my content layout file.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
>
    <ImageView
        android:id="@+id/infocontent_iv_image"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_alignParentTop="true" 
    />
    <RelativeLayout
        android:id="@+id/infocontent_rl_middle"
        android:layout_below="@id/infocontent_iv_image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:layout_margin="5dp"
    >

    </RelativeLayout>
    <TextView
        android:id="@+id/infocontent_tv_name"
        android:layout_below="@id/infocontent_rl_middle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textStyle="bold" 
        android:layout_margin="5dp"
    />
    <TextView
        android:id="@+id/infocontent_tv_type"
        android:layout_below="@id/infocontent_tv_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#CCCCCC"
        android:layout_margin="5dp"
    />
    <TextView
        android:id="@+id/infocontent_tv_desc"
        android:layout_below="@id/infocontent_tv_type"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
    />
    <TextView
        android:id="@+id/infocontent_tv_addr"
        android:layout_below="@id/infocontent_tv_desc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
    />
</RelativeLayout>

So any one help me how can i set data to all views in infowindow adapter?


Solution

  • I have open dialog onMarker() click. and setContentView(my layout).

    I have use below code.

    @Override
        public boolean onMarkerClick(Marker arg0) {
            if(arg0.getSnippet() == null){
                mMap.moveCamera(CameraUpdateFactory.zoomIn());
                return true;
            }
            //arg0.showInfoWindow();
            final DataClass data = myMapData.get(arg0);
            final Dialog d = new Dialog(MainActivity.this);
            d.requestWindowFeature(Window.FEATURE_NO_TITLE);
            //d.setTitle("Select");
            d.getWindow().setBackgroundDrawable(new ColorDrawable(Color.WHITE));
            d.setContentView(R.layout.info_content);
            ivPhoto = (ImageView)d.findViewById(R.id.infocontent_iv_image);
            AddImageOnWindow executeDownload = new AddImageOnWindow();
            final LatLng l = arg0.getPosition();
            executeDownload.execute(l);
            TextView tvName = (TextView)d.findViewById(R.id.infocontent_tv_name);
            tvName.setText(data.getPlaceName());
    
            TextView tvType = (TextView)d.findViewById(R.id.infocontent_tv_type);
            tvType.setText("("+data.getPlaceType()+")");
    
            TextView tvDesc = (TextView)d.findViewById(R.id.infocontent_tv_desc);
            tvDesc.setText(data.getPlaceDesc());
    
            TextView tvAddr = (TextView)d.findViewById(R.id.infocontent_tv_addr);
            tvAddr.setText(Html.fromHtml(data.getPlaceAddr()));
    
    d.show();
    return true;