根据Andorid api参考,Textpaint.breakText(字符串文本,布尔boolean measureForwards,float maxWidth,float []测量宽度)返回所测量的字符数。始终为
int cnt = mTextPaint.breakText("Traffic", true, 10000, outMeasuredWidth)
在我看来,它应该返回7,但实际上它返回6。为什么除7之外还有6?谢谢。
最佳答案
原因是因为“流量”一词中的“ fi”被视为一个单位或字形。当您的字体使用ligatures时就是这种情况。
与Paint.breakText()的API参考上提到的相反,该方法计算字形而不是字符。
我建议使用没有连字的字体或使用measureText()来确定字符数。
提交了一个错误,但尚未修复。
参考文献:
Paint.breakText() counts glyphs, not characters
https://code.google.com/p/android/issues/detail?id=39365