На самом деле вы можете иметь настраиваемые виджеты вкладок. Вам нужно установить индикатор вкладки в какой-то пользовательский макет (с вашими рисованными объектами), и вы должны быть в порядке.
Вот полу-пример:
final TabHost host = getTabHost();
final TextView indicator = (TextView) getLayoutInflater().inflate(
R.layout.tab_indicator,
getTabWidget(), false);
indicator.setText("Tab title");
host.addTab(host.newTabSpec("The tab tag")
.setIndicator(indicator)
.setContent([put your content here]));
}
Где макет tab_indicator может выглядеть следующим образом:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab_label"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center"
android:textSize="14sp"
android:textStyle="bold"
android:minHeight="38dp"
android:background="@drawable/minitab" />
Миниатюра для рисования является селектором для рисования элементов (поэтому вам нужно иметь изображение для выбранного, по умолчанию, нажатого и невыбранного). Приложение facebook использовало несколько белых рисованных изображений для вкладки по умолчанию и синий градиент для рисования для невыбранных вкладок.
Проверьте приложение Google IO Schedule для полного рабочего примера: http://code.google.com/p/iosched/ (и, в частности, TrackDetailActivity.java)