11

我在 android 版本中开发了一个泰米尔语新闻应用程序2.3.3。但是,泰米尔语字体仅在 android 4.0 及更高版本中得到了适当的开发。我想在所有版本的 android mobile 中显示它们。

我试图用一些泰米尔语字体解决这个问题,比如baminiand mylai,但它们只适用于更高的 android 版本。

4

2 回答 2

27

首先,您必须了解在 ICS(4.0) 之前,Android 操作系统(少数三星和 SE 手机除外)不支持泰米尔语。即便如此,它也有错误,并且 Jelly Bean (4.2) 提供了全面支持。

如果您在应用程序中使用 Unicode Tamil 字体,您只会看到框。原因是系统中没有泰米尔语字体。

1.手动方式

这个解决方案有一个变通方法。您所要做的就是下载 Bamini 字体并将其放在您的资产文件夹中。并使用字体 Bamini 创建 TypeFace 并将其设置为 TextView。

Typeface font1 = Typeface.createFromAsset(getAssets(), "fonts/Bamini.ttf");
customText1.setTypeface(font1);

现在使用转换器将 Unicode 字体转换为 Bamini编码。代替 Unicode 文本,将转换后的 Bamini 编码脚本提供到setText方法中。

2. 使用图书馆

如果您讨厌所有这些手动编码转换,请查看此

正如我在上面所说的,如果您想在运行应用程序时动态更改编码,请考虑使用我为 Android 编写的库。该库将帮助您将 Unicode 字符串转换为 Bamini、TSCII、TAB、TAM 和 Anjal。

设置非常简单。您所要做的就是简单地将库导入您的 Android 项目并调用该库,如下所示。

// Initialise the Typeface (assumes TSCII, Bamini, Anjal, TAB or TAM font located inside assets/fonts folder)
Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/mylai.ttf");
// Initialises the TextView
TextView tv = (TextView)findViewById(R.id.textView1);
//Setting the Typeface
tv.setTypeface(tf);
//Magic happens here ;) encoding conversion
String TSCIIString = TamilUtil.convertToTamil(TamilUtil.TSCII, "வணக்கம் அன்ரொயிட்");
//Setting the new string to TextView
tv.setText(TSCIIString);

该库提供了一个示例应用程序。查看该应用程序,了解如何利用该库将 Unicode 字符串转换为 Bamini、TAB、TAM、TSCII 和 Anjal。

当你使用这个库时,你会得到类似的东西。

屏幕截图泰米尔语 Unicode 转换器 Util

您需要使用TypeFaceAndroid 中可用的类。您可以使用 Bamini 或 TSCII 编码(Mylai 是一种 TSCII 字体)。

免责声明:我写了这个库。

3.对于WebView

如果您使用包装在 WebView 中的 html 和 CSS 进行开发,请查看此应用程序的源代码。你必须利用fontfaceCSS3 的特性。

首先,您需要将样式声明为

@font-face {
 font-family: MyCustomFont;
 src: url("Bamini.ttf") /* TTF file for CSS3 browsers */
}

然后你必须MyCustomFont在你的标签中使用。例如,如果您想将其设置为整个身体(在这种情况下更容易)

body {
 font-family: MyCustomFont, Verdana, Arial, sans-serif;
 font-size: medium;
 color: black
}

希望这会给你应得的提醒。希望在 Play 商店中看到更多泰米尔语应用。

于 2013-03-19T09:52:07.357 回答
-1

TAb 不需要嵌入,现在我们有 unicode 请使用这个泰米尔语 unicode 字体 http://visualmediatech.com.fonts

于 2017-08-08T06:33:38.797 回答