Я написал виджет для этого:
http://code.google.com/p/android-flowtextview/
Этот виджет расширяет (и, следовательно, ведет себя как) RelativeLayout, так что вы можете добавлять дочерние представления. Класс предоставляет метод setText (), который позволяет вам установить текст представления (обычный или spannable), а затем вы вызываете invalidate () для отображения текста. Текст заполнит любое пространство, оставленное дочерними представлениями.
Пример использования:
<com.pagesuite.flowtext.FlowTextView
android:id="@+id/tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:padding="10dip"
android:src="@drawable/android" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="400dip"
android:padding="10dip"
android:src="@drawable/android2" />
</com.pagesuite.flowtext.FlowTextView>
Тогда в вашем коде:
tv = (FlowTextView) findViewById(R.id.tv);
Spanned spannable = Html.fromHtml("<html ... </html>");
tv.setText(spannable); // using html
tv.setText("my string"); // using plain text
tv.invalidate(); // call this to render the text
Всегда рад помочь, если у вас возникли проблемы с этим, найдите мой адрес электронной почты в моем профиле