android - 将 TextView 包裹在 ImageView 周围

标签 android android-layout android-imageview textview

晚上好

我正在尝试将我的文本环绕在 ImageView 周围,就像这里的问题一样:

Textview wrap around View

横向。

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

另外,我希望我的肖像 View 与 TextView 下的 img View 保持一致,即没有换行。

谁能帮帮我?

最佳答案

解决方法我可以立即想到,从以前的 TextView 格式问题来看,最好的方法是使用 RelativeLayout,并且只需在其中放置 3 个独立的 View 。它将代表图像旁边的 TextView,文本旁边的 ImageView 本身,然后是第一个下面的最后一个 TextView文本,但带有 layout_width="match_parent"。没有其他方法可以使用 TextViewImageView 否则。

编辑:

如果您非常想使用 1 个 TextView,我认为您可以采取的唯一其他解决方法是,我建议使用 SpannableStringBuilderSpannableString。出于特定原因,我最初并没有将其作为选项提供给您。如果您返回到您在问题上发布的那个链接,其中一个答案会说他们找到了答案。我相信那个人链接到一个很好的资源,但他们对你的需求是错误的。使用 SpannableStringBuilder 时,您实质上是在创建一个字符串,该字符串可以将单个字符串的多个不同版本合并为一个字符串,例如单个字符串上有 3 种不同的颜色,或者具有 3 种不同大小的字符串,所有这些都合而为一 TextView 。喜欢你需要的。

现在链接谈到了放置图像并让文本很好地环绕它,但这并不是那么简单,而且该示例不是您所需要的。要在一个 TextView 中提供所有内容,您可以做的是在您知道图像将在右侧的前几行之后添加换行符,然后在图像之后不这样做。但问题是它仍然需要进入 RelativeLayout。但是您只需要一个而不是两个 TextView。只需将 TextView 放在父级的左上角,将 ImageView 放在父级的右上角。这模拟了一个 floating 元素。但我认为这样做麻烦多于其值(value)。这确实是因为您必须进行计算才能确定在哪里放置换行符等。您最好使用两个 TextView 来使它看起来像您需要的那样。因此,在我看来,请勿使用 SpannableStringBuilder,但如果您不介意尝试找出所有间距,那么它确实可以满足您对单个 TextView 的需求。

关于android - 将 TextView 包裹在 ImageView 周围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11875339/

相关文章:

java - 如何在DownloadManager中设置下载目录?

android - 使用 Android L 动画在 Activity 之间切换

android - 始终将 float 操作按钮放在顶部

android - 如何在 Android 中翻转 ImageView?

android - 不在我的应用程序中从 Web 加载图像

android - 如何避免android中相对布局中的重叠 View ?

android - 使用 FragmentPagerAdapter 时不会调用 Fragment onResume()

android - 尝试定义设备应使用哪种布局

java - WebView.Destroy() 导致致命信号 11 崩溃

android - 具有透明背景的 Activity