gpt4 book ai didi

android - Textpaint.breakText 的返回值

转载 作者:行者123 更新时间:2023-11-29 18:00:42 24 4
gpt4 key购买 nike

根据 Andorid api 引用,Textpaint.breakText (String text, boolean measureForwards, float maxWidth, float[] measuredWidth) 返回被测量的字符数。将始终 <= abs(end - start)。现在我想打破“Traffic”(有 7 个字符)来测试它的返回值:

int cnt = mTextPaint.breakText("Traffic", true, 10000, outMeasuredWidth)

在我看来,它应该返回 7,但实际上它返回 6。为什么 6 而不是 7?谢谢。

最佳答案

原因是因为单词Traffic中的“fi”被认为是一个单位或字形。当您的字体使用 ligatures 时就是这种情况。 .

与 Paint.breakText() 的 API 引用中提到的相反,该方法计算字形而不是字符。

我建议使用不带连字的字体或使用 measureText() 来确定字符数。

已提交错误,但尚未进行修复。

引用资料:

Paint.breakText() counts glyphs, not characters

https://code.google.com/p/android/issues/detail?id=39365

关于android - Textpaint.breakText 的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16259810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com