So you've hit a dead end on the infowindow because that's not what you should be using to make really custom infowindows that have buttons and such. Not this Yankee engineer wouldn't do it that way.
If you want something custom to show up when the user clicks the marker then capture the marker click show your view at the marker coordinates center the map to the marker coordinates and return true
from the onMarkerClick
https://developers.google.com/maps/documentation/android/marker#marker_click_events
public boolean onMarkerClick (Marker marker)
Called when a marker has been clicked or tapped.
Parameters
marker The marker that was clicked.
Returns
true if the listener has consumed the event (i.e., the default behavior should not occur), false otherwise (i.e., the default behavior should occur). The default behavior is for the camera to move to the map and an info window to appear.
So how do I put something over the map that takes the shape of a infowindow well I'd need a image or some fancy line art that's not something I have readily available in the source I've worked to cut and paste here.
So how do I put a button over the map. Well that I can do but for this example the buttons are in static locations. The Pseudo infowindow you'll have to move the button or image whatever to the coordinates of the marker and maybe center the map on the marker coordinates.
<?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="fill_parent" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="fill_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="32dp"
android:layout_marginTop="34dp" >
<TextView
android:id="@+id/tvSpeed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="55sp" />
<TextView
android:id="@+id/tvSpeedUnits"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="21sp" />
</LinearLayout>
<Button
android:id="@+id/btnFollow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="34dp"
android:background="@drawable/mapbutton"
android:padding="14dp"
android:text="@string/btnFollowText"
android:textColor="@color/black" />
<TextView
android:id="@+id/tvSatLock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="sat lock"
android:textColor="@color/black"
android:textSize="21sp" />
<Button
android:id="@+id/btnGPS"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@drawable/mapbutton"
android:paddingLeft="14dp"
android:paddingRight="14dp"
android:text="Enable GPS"
android:textColor="@color/black" />
</RelativeLayout>
Personally I whould simply show a deluxe transparent overlay on the entire screen when the infowindow is clicked. I mean the user has to click something either way you go.
Good Luck
Signed
One Click ahead of the infoWindow listener.