我用安卓版本的2.3.3开发了一个泰米尔语新闻应用程序。但是,泰米尔语字体仅在android 4.0版及更高版本中正确开发。我想在android手机的所有版本中显示它们。
我试着用一些泰米尔字体来解决这个问题,比如bamini和mylai,但它们只适用于更高版本的安卓系统。
发布于 2013-03-19 17:52:07
首先,你必须明白,在安卓操作系统中没有泰米尔语支持(除了少数三星和SE手机),直到ICS(4.0)。即使在那时,它也有bug,并且Jelly Bean (4.2)提供了完整的支持。
如果你在你的应用程序中使用Unicode Tamil字体,你会看到方框。原因是系统中没有泰米尔字体。
1.手动操作方式
这个解决方案有一个变通的方法。您所要做的就是,使用download the Bamini font并将其放入您的assets文件夹中。并使用Bamini字体创建TypeFace,并将其设置为TextView。
Typeface font1 = Typeface.createFromAsset(getAssets(), "fonts/Bamini.ttf");
customText1.setTypeface(font1);现在使用converter to convert Unicode font into Bamini编码。将转换后的Bamini编码脚本提供到setText方法中,而不是Unicode文本。
2.使用库
如果您讨厌所有这些手动编码转换,请查看此library
正如我在上面一行所说的,如果你想在运行应用程序时动态地改变编码,那么我为安卓编写的consider using the library。这个库可以帮助你将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);库中提供了一个sample app。查看该应用程序,了解如何利用该库将Unicode字符串转换为Bamini、TAB、TAM、TSCII和Anjal。
当你使用这个库的时候,你会得到类似这样的东西。

您需要使用Android中提供的TypeFace类。您可以使用Bamini或TSCII编码(Mylai是TSCII字体)。
免责声明:这个库是我写的。
3.对于WebView
如果您正在使用包装在WebView中的html和CSS进行开发,那么可以看看this application's source。你必须利用CSS3的fontface特性。
首先,您需要像这样声明样式
@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 Store中看到更多泰米尔语应用程序。
发布于 2017-08-08 14:33:39
TAb不需要嵌入,现在我们有unicode请使用这个泰米尔unicode字体http://visualmediatech.com.fonts
https://stackoverflow.com/questions/15267292
复制相似问题