根据Andorid api引用,Textpaint.breakText(String text,boolean measureForwards,float maxWidth,float [] measuredWidth)返回测量的字符数。将永远是< = abs(结束 - 开始)。现在我想打破“流量”(有7个字符)来测试它的返回值:
int cnt = mTextPaint.breakText("Traffic", true, 10000, outMeasuredWidth)
在我看来,它应该返回7,但实际上它返回6.为什么6除了7?感谢。
答案 0 :(得分:3)
原因是因为“交通”一词中的“fi”被视为一个单位或字形。当您的字体使用ligatures时就是这种情况。
与Paint.breakText()的API参考中提到的相反,该方法计算字形而不是字符。
我建议使用没有连字的字体或使用measureText()来确定字符数。
提交了一个错误,但尚未修复。
参考文献: