textview android中的文本宽度

时间:2015-02-20 03:16:22

标签: android android-layout android-edittext textview

我是Android新手..我有一个大小为250dp的textview ..我正在尝试计算其中的文本宽度..但我找不到任何返回实际内容宽度的API ..有人可以帮忙吗可以办到。 提前致谢。

3 个答案:

答案 0 :(得分:2)

您可以使用Paint所持有的TextView对象来衡量文字内容的宽度:

CharSequence text = textView.getText();
float width = textView.getPaint().measureText(text, 0, text.length());

还有一个版本可以测量文本内容的完整边界(左/右/上/下):

Rect bounds = new Rect();
CharSequence text = textView.getText();
textView.getPaint().getTextBounds(text, 0, text.length(), bounds);

//bounds now contains the rect of the actual text string
int width = bounds.getWidth();

答案 1 :(得分:0)

Devunwired的答案是完全正确的。

但是,让读者知道以像素为单位的文本宽度度量不需要与TextViewEditText的任何实际内容相关联,并且不限于视图,这对您很有用。这样,您就可以在将视图设置为文本之前模拟确定的文本是否适合该视图。

此外,如果使用整个字符串,则无需指定初始索引和最终索引(不包括)。

所以一个人可以写

float width = textView.getPaint().measureText("my favorite fruit is a banana");

工作顺利

答案 2 :(得分:-2)

没有这方面的API。首先你必须找到文本大小并找到字符串的长度。最后你将获得textview文本的宽度。