阿拉伯语的 Android TextView measureText

标签 android unicode textview arabic

Paint.measureText 对于阿拉伯语文本不准确。这是我尝试过的:

我有一个 TextView tv1。

tv1.getWidth(); 给出 480,没问题。 tv1.getPaint().measureText("المؤلف : عبدالرحمن ابن أبي بوأو الفضل السيوطي"); 给出 502,它比屏幕宽度大。

不好的结果,因为文本占据了大约 80% 的线宽!结果应该在 400 左右。

谢谢。

最佳答案

我今天遇到了这个问题。一切都按预期工作,你应该知道当你的文本包含像 ّ ِ ُ َ 字符这样的阿拉伯语元音时,它们都在宽度中作为单独的字符计算,而 android Paint.measureText 不知道它不应该考虑这些字符,因为它们不会增加额外的宽度并且它们将绘制在其他字符的顶部和底部。

解决方案是:您应该先从文本中删除这些字符,然后测量您的文本。

关于阿拉伯语的 Android TextView measureText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9852576/

相关文章:

ios - 按名称搜索 Unicode 代码点

xml - 解码?到真实的性格

android - u\2022 不显示在从 json 检索的 TextView 中

java - Android 蓝牙聊天应用程序(设备立即失去连接)

android - 如何为 PC 和 Android 应用程序之间的 USB 通信激活 UDP 转发

python - 如何去除列表中的 unicode

java - Android:显示文本的问题

android - AppWidgetManager 在 onUpdate 之外?

android - 如何清除文本编辑字段?安卓 python appium

android - 从应用程序打开无线设置