Ответ 1
В документах указано:
Поскольку в каждый момент времени отображается только одно информационное окно, это поставщик может выбрать повторное использование представлений или может выбрать создание нового представления по каждому вызову метода.
Таким образом, вы не можете делать это с помощью обычных инфоваров, но не слишком сложно создавать маркеры, которые действуют как infoviews.
Edit
Я бы создал представление в xml, которое вы хотите использовать в качестве маркера/диалога. Что-то вроде этого:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="100dp"
android:layout_height="100dp"
android:orientation="vertical"
android:background="@android:color/white"
>
<TextView
android:text="test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:src="@drawable/ic_launcher"
android:layout_width="50dp"
android:layout_height="50dp"/>
</LinearLayout>
Затем я преобразовал бы это представление в растровое изображение и использовал бы это растровое изображение как мой маркер:
ImageView image = (ImageView) findViewById(R.id.main_image);
LinearLayout tv = (LinearLayout) this.getLayoutInflater().inflate(R.layout.test_layout, null, false);
tv.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
tv.layout(0, 0, tv.getMeasuredWidth(), tv.getMeasuredHeight());
tv.setDrawingCacheEnabled(true);
tv.buildDrawingCache();
Bitmap bm = tv.getDrawingCache();