是否有将TextView包裹在图像周围? 这是人们在CSS中做的典型事情,如http://www.echoecho.com/htmlimages08.htm
谢谢,
三通
答案 0 :(得分:15)
我为此编写了一个小部件: http://code.google.com/p/android-flowtextview/
此小部件扩展(因此表现得像)RelativeLayout,因此您可以添加子视图。该类公开了一个setText()方法,该方法允许您设置视图的文本(plain或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
如果您在使用此功能时遇到任何问题,请随时与我们联系,在我的个人资料中查找我的电子邮件
答案 1 :(得分:4)
为什么不使用WebView
?您将来可以更自由地以这种方式自定义布局。
如果WebView
对于您的用例来说太重了,您可能需要手动渲染文本和图像。您可以在this android-developers thread中找到一些相关信息。
答案 2 :(得分:0)
另一种实现此目的的方法是制作包含要显示的文本和图像的图像。显然更重的重量和解决方法。
您可以使用webview和变通方法来加载本地内容。从1.0 SDK开始,webview无法在没有这些文章中描述的解决方法的情况下加载本地内容:
和
http://blog.tourizo.com/2009/02/how-to-display-local-file-in-android.html
Roman的链接是指一个线程,表示你不能用文本视图来做,所以这不是一个选项。