canvas.drawtext阿拉伯语逆转

时间:2013-02-25 07:59:58

标签: android canvas drawtext persian farsi

当我用drawtext在画布上写阿拉伯语文本时,在某些设备中它写得正确但在其他设备中它是反转的。例如在某些سلام和其他مالس中。 我通过arabicReshaper转换字符来解决阿拉伯语形式的单独字符问题。

  1. 如何检测何时需要反转,何时不反向。
  2. 在某些设备中,پ字符显示正确但在某些其他设备中未显示该字符。我使用自定义字体,我确定字体有پ字符。

1 个答案:

答案 0 :(得分:0)

首先,我建议您查看this链接。

  

如何检测何时需要反转单词,何时不反复。

您可以使用以下函数检测波斯语字符,因此当文本为波斯语时,您需要反转它们的序列。

     public boolean isPersian(String persianText)
     {
         return persianText.matches("/[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF]/");
     }

如果您的字符串包含波斯字符(非数字),则上述函数返回true,否则返回false。

  

在某些设备中,پ字符显示正确,但在其他设备中   设备不显示该字符。我使用自定义字体,我确定   字体有پ字符。

这是一个bug并且依赖于你的android版本,在android 2.3,2.2等这个字符没有正确显示你无法做任何事情来解决它,但是这个问题目前已经解决了在ICS和JB。