0

我的代码是

 Paint paint= new Paint();
 paint.setTextSize(size); 
 int iRet = 0; 
 if (str != null && str.length() > 0) {
     int len = str.length(); 
     float[] widths = new float[len]; 
     paint.getTextWidths(str, widths); 
     for (int j = 0; j < len; j++) {
     iRet += (int) Math.ceil(widths[j]); 
    } 
}
 return iRet;

我想获取字符串的宽度,但返回结果与 TextView 有错误。

不知道正确的方法。

谢谢。

我在虚拟机中显示它。

4

4 回答 4

2

要计算文本宽度,您应该使用:

public float measureText (String text)

类 Paint 中的方法,它将返回绘制中文本的测量宽度。

于 2012-10-31T09:10:00.003 回答
1

您可以尝试使用画布,有一次我发现 Textview 无法以正确的大小显示我的文本,所以我使用 Canvas 将文本绘制出来,我得到了我想要的宽度,这可能是 dp,sp 的一些错误原因或像素。

于 2012-11-08T06:29:05.563 回答
1

您可以使用:

int width = paint.measureText("this text");

measureText(String text) 将返回文本的宽度。

于 2012-10-31T09:09:47.897 回答
0

你可以通过调用paint类的measureText()来测量它,这里是代码——

Paint p=new paint();

int value = p.measureText("give input string to measure");
于 2012-10-31T09:26:40.987 回答