我是Android新手..我有一个大小为250dp的textview ..我正在尝试计算其中的文本宽度..但我找不到任何返回实际内容宽度的API ..有人可以帮忙吗可以办到。 提前致谢。
答案 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的答案是完全正确的。
但是,让读者知道以像素为单位的文本宽度度量不需要与TextView
或EditText
的任何实际内容相关联,并且不限于视图,这对您很有用。这样,您就可以在将视图设置为文本之前模拟确定的文本是否适合该视图。
此外,如果使用整个字符串,则无需指定初始索引和最终索引(不包括)。
所以一个人可以写
float width = textView.getPaint().measureText("my favorite fruit is a banana");
工作顺利
答案 2 :(得分:-2)
没有这方面的API。首先你必须找到文本大小并找到字符串的长度。最后你将获得textview文本的宽度。