4

简短的序言。泰文有可能出现在辅音上方的元音符号,也有出现在辅音上方的变音符号(DS);当元音和DS都出现时,它们出现在另一个之上,因此元音设置在辅音之上,DS设置在元音之上。

我正在编写一个以泰语显示文本的应用程序。在模拟器(API 10)中一切看起来都很完美,但在真实设备上却不是(三星 GT-I9001 和 Gingerbread 2.3.6)。

我准备了两张图片来说明问题。我有一个简单的布局,顶部只有一个 TextView;该视图中显示两个词พี่สาว和ไม้。

这就是它的样子(来自模拟器的截图):

在此处输入图像描述

第一个字符有元音和元音上方的 DS,最后一个字符只有 DS。

这是我手机的截图:

在此处输入图像描述

两个 DS 都向下滑动,现在元音和 DS 在第一个字符上方相互重叠。请注意,最后一个字符看起来比它应该的低(它应该是整行高,就像您在第一个屏幕截图中看到的那样)。

我发现问题出在系统范围内:我将这些泰语单词复制到一个简单的网页中,然后将其加载到手机的网络浏览器中,但遇到了同样的问题。字体渲染似乎被破坏了。

所以问题是:如何绕过这个?我是否需要安装字体(如何?)或者一些语言包(再次,如何?),或者唯一的方法是升级 Android?

PS:Android 4.0.4 上没问题。也许只有旧版本受到影响。

更新: WarrenFaith 给出了关于设置自定义字体的有希望的建议。然而,这似乎并不像看起来那么简单。我尝试了几种不同的字体,包括 Roboto(在 ICS 中引入)、来自 msttf Linux 软件包的 Verdana 以及其他一些字体。为了查看字体是否真正加载和应用,我在文本中添加了一些拉丁文和西里尔文字符。

结果很有趣。只有拉丁文和西里尔文字符发生变化,泰文字符没有变化。看起来字体没有所需的字形,Android 将它们替换为使用某些默认字体呈现的字形。

(我不明白为什么 Roboto 不起作用;它是官方的 Android 字体——它不应该完全支持整个 Unicode 吗?)

所以看来我必须找到有泰语字形的字体。

而且我仍然想知道在 Android 4.0.4 中默认使用什么字体。

快乐的结局:感谢 WarrenFaith 的建议、Google 和这篇博客文章

4

1 回答 1

2

如果默认文本/字体被破坏,您应该提供您知道可以使用的字体。要实现字体,您可以使用以下答案:

  1. Android - 使用自定义字体
  2. 在 Android 中使用自定义字体
于 2013-02-24T13:42:01.617 回答