我使用谷歌翻译将以下字符串“我认为 CompanyXYZ 在 2014 年及以后是一家伟大的公司”翻译成希伯来语,结果是
当我在 Galaxy S3(Android 4.3)上的 TextView 中显示此文本时,我得到
这似乎是正确的。
当我在 Galaxy Tab 7(运行 Android 2.2)上运行相同的程序时,我得到
这显然是不正确的。
我可以使用 android.support.v4.text.BidiFormatter 和/或 java.text.Bidi 来正确呈现这个吗?
运行以下代码时
Bidi bidi = new Bidi(text, Bidi.DIRECTION_DEFAULT_RIGHT_TO_LEFT);
for (int i = 0; i < bidi.getRunCount(); i++)
{
int start = bidi.getRunStart(i);
int level = bidi.getRunLevel(i);
int limit = bidi.getRunLimit(i);
Log.d("RTL", "bidi.run["+i+"] = "+start+";"+level+";"+limit+";"+ text.substring(start, limit));
}
我确实得到了以下 5 次运行
bidi.run[0] = 0;1;9;אני חושב
bidi.run[1] = 9;2;19;CompanyXYZ
bidi.run[2] = 19;1;36; היא חברה גדולה ב
bidi.run[3] = 36;2;40;2014
bidi.run[4] = 40;1;46; ומעבר
因此,所有信息似乎都可用于正确呈现此字符串,但我不知道如何继续。我可以使用 BidiFormatter 吗?或者我应该覆盖 TextView.draw()?