0

我可以在 textView 中放入多语言吗?例如,我可以有一个带有阿拉伯文字和英文数字的 textView 吗?

例子

4

2 回答 2

1

只要两个文本都以 Unicode 格式编码,Murillo Henrique 建议的解决方案就可以工作。

另一方面,当任何文本是非 Unicode 时,我们将无法在单个 TextView 控件中显示它。

在此处输入图像描述

如上所示,第一个 TextView 显示英语和阿拉伯语文本。这是因为两者都是 Unicode 文本。为此,可以简单地组合不同语言的字符串,如下所示。

txtUnicode.setText( "The Saved Group " + "الفرقة الناجية");

在第二个 TextView 控件中,加载的文本是非 Unicode 马拉雅拉姆语文本。要正确显示非 Unicode 文本,需要加载相应的字体,如下所示。

Typeface tfMalayalam = Typeface.createFromAsset(getAssets(), "fonts/FML-TT-Leela_Heavy.ttf");
textNonUnicode.setTypeface(tfMalayalam);
textNonUnicode.setText("hnPbn¨I£n");

可以看出,传递给setText方法的文本是不可读的,因为它是非 Unicode 编码形式。但是在运行时提供正确的字体时,它会正确显示文本。

当我们处理来自遗留源的非 Unicode 文本时,这种非 Unicode 字体加载将非常有用。

在第三个 TextView 控件中,一个 Unicode 文本被附加到一个非 Unicode 文本,如下所示。

TextView textUnicodePlusNonUnicode = (TextView) findViewById(R.id.txtUnicdePlusNonUnicode);
textUnicodePlusNonUnicode.setTypeface(tfMalayalam);
textUnicodePlusNonUnicode.setText("hnPbn¨I£n" + " Unicode English");

因为这里设置了非 Unicode 字体,系统会尝试使用加载字体指定的非 Unicode 编码方案来显示 Unicode 文本。因此,提供的 Unicode 文本Unicode English不会按预期显示。

作为附加信息,Google 正在为 Android 平台定义一种名为 Noto 的通用字体。有关更多详细信息,请参阅内容。

于 2017-12-19T05:51:14.010 回答
0

您有 2 个选项:

一:键入您的文本,但在键入过程中在键盘中的各种语言之间切换。

或者我推荐的第二个,因为您将所有文本都放在一个文件中,以便以后更轻松地对其进行修改。

myTextView.setText(R.string.text1 + " " + R.string.text2);

在您的 String.xml 中:

<string name="text1">Your english text goes here/>
<string name="text2">Your arabic text goes here/>
于 2013-10-17T21:39:02.110 回答