代码之家  ›  专栏  ›  技术社区  ›  Thomas Ahle

文本视图环绕视图

  •  28
  • Thomas Ahle  · 技术社区  · 14 年前

    在一个信息显示活动中,我有一个“事实框”,后面是一个大文本框。我希望信息框向右浮动,类似于下图。

    使用android TextView api可以吗?

    4 回复  |  直到 5 年前
        1
  •  3
  •   Thorstenvv    14 年前

    我建议使用一个WebView。您可以使用通常的HTML/CSS格式在web视图中格式化文本,使用这种格式,您所需的布局非常容易完成。

        2
  •  11
  •   Lenn Dolling    13 年前

    找到了这个解决方案!!从源代码处查看---> answer source

    假设你想在句子中间放置一个图像。您可以添加一对TextView和一个ImageView,但是如果水平空间太小,这两个TextView将开始独立环绕,看起来会很奇怪。你会希望图片是你的文本视图的一部分,整个句子很好地围绕。 为此: *使用SpannableStringBuilder附加所有字符串(不要忘记添加一个将由图像替换的额外字符(例如空格) *最后在构建器上使用setSpan(ImageSpan,begin,end,flag),其中ImageSpan是一个包含可绘制图片的ImageSpan,begin是插入字符的索引

    SpannableStringBuilder builder = new SpannableStringBuilder();
    builder.append(mContext.getText(R.string.part1));
    int lengthOfPart1 = builder.length();
    builder.append(" ");
    builder.append(mContext.getText(R.string.part2));
    Drawable d = mContext.getResources().getDrawable(R.drawable.picasaIcon);
    d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); // <---- Very important otherwise your image won't appear
    ImageSpan myImage = new ImageSpan(d);
    builder.setSpan(myImage, lengthOfPart1, lengthOfPart1 + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    myTextView.setText(builder);
    
        3
  •  7
  •   Daniel Jonker    10 年前

    我知道为时已晚,但对于仍在努力实现这一目标的人来说,这里有一个旨在实现这一目标的图书馆。 https://github.com/deano2390/FlowTextView

        4
  •  2
  •   Janusz Daniel Rindt    14 年前

    我担心这是不可能的一个单一的文本视图。TextView必须是矩形,并且不能显示子视图。一种解决方法是创建两个textview并对第一个textview进行剪切,然后询问第一个textview可以显示多少内容,并将字符串的其余部分添加到第二个text视图中。

    推荐文章