在img视图周围包装文本视图

时间:2012-08-09 00:55:22

标签: android android-layout android-imageview textview

晚上好,

我正试图将我的文字包裹在图像视图中,就像问题在这里一样:

Textview wrap around View

in landscape。

但我希望不要在HTML / CSS中这样做。另外,这个问题是2岁。我希望有人找到了解决这个问题的方法。

另外,我希望在文本视图下使用img视图保持我的纵向视图,即没有包装。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我可以通过TextView格式来解决问题,最好的办法就是拥有RelativeLayout,然后在里面放置3个单独的视图它的。它将代表图片旁边的TextView,文本旁边的ImageView,以及第一个文字下的最后TextView,但{{1} }。除此之外,没有其他方法可以使用layout_width="match_parent"TextView

修改

如果您打算使用1个TextView,我相信您可以做的唯一其他解决方法,我建议您使用ImageView SpannableStringBuilder。出于某种特定原因,我最初没有把它作为一种选择。如果你回到你在问题上发布的链接,其中一个答案就说他们找到了答案。我相信这个人与良好的资源有关,但他们的需求是错误的。使用SpannableString时,您实际上创建的字符串可能会将单个字符串的许多不同版本合并为一个字符串,例如单个字符串上的3种不同颜色,或者具有3种不同大小的字符串,所有这些都在一个{{1 }}。喜欢你需要的东西。

现在链接谈到了放置一个图像并让文本很好地环绕它,但它并不那么简单,那个例子不是你需要的。您可以在一个SpannableStringBuilder中提供所有内容的方法是在您知道图像将在右侧的前几行之后添加换行符,然后在图像之后不再这样做。但事情是它仍然需要进入TextView。但是,您只需要一个TextView,而不是两个TextView。只需将TextView放在父级所在的左上角,将ImageView放在父级所在的右上角。这模拟了TextView元素。但我认为这样做比其价值更麻烦。这真的是因为你必须进行计算以找出换行符的位置等。最好使用两个RelativeLayout来使它看起来像你需要的那样。所以在我看来,不要使用floating,但是如果你不介意试图找出所有的间距,那么只需一个TextView即可满足你的需求。