Android.how计算宽字符串?

时间:2012-10-31 08:57:56

标签: android

我的代码是

 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 个答案:

答案 0 :(得分:2)

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

public float measureText (String text)

类Paint中的

方法,它将返回paint中文本的测量宽度。

答案 1 :(得分:1)

你可以使用:

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

Paint p=new paint();

int value = p.measureText("give input string to measure");