Android TextView和获取文本行

时间:2012-02-17 09:31:25

标签: android text textview

我有一个TextView,其文本可以运行到很多行。一旦创建并动态设置,我想

  1. 获取给定行上的文字,
  2. 知道这条线的宽度和高度。
  3. 我该怎么做?

2 个答案:

答案 0 :(得分:20)

如果我理解正确,问题2的答案是:

textView.getLineBounds (int line, Rect bounds)

宽度(以像素为单位)应为abs(bounds.right - bounds.left);高度为abs(bounds.bottom - bounds.top)

你的第一个问题有点棘手,但是这样的事情应该做所需的魔术:

Layout layout = textView.getLayout();
String text = textView.getText().toString();
int start=0;
int end;
for (int i=0; i<textView.getLineCount(); i++) {
    end = layout.getLineEnd(i);
    line[i] = text.substring(start,end);
    start = end;
}

答案 1 :(得分:0)

第一个问题:

由于我的textview具有自动换行功能,因此上一个选择的答案对我没有帮助。 使用以下行从给定的行号“ i”中获取文本

科特琳:

var textofline:String = textview.text.subSequence(textview.layout.getLineStart(i), textview.layout.getLineEnd(i)).toString()

让我知道它是否缺乏解释。

PS:我不是android的高手。只是分享我的知识,以防有人觉得有用