我试图解决一些泰米尔语字体的问题,如bamini和mylai,但他们只在更高的Android版本中工作.
解决方法
如果您在应用程序中使用Unicode Tamil字体,您将只会看到框.原因是系统中没有泰米尔语字体.
手工的做法
有一个解决方案的工作.所有你要做的是,download the Bamini font并把它放在你的资产文件夹.并使用字体Bamini创建TypeFace并将其设置为TextView.
Typeface font1 = Typeface.createFromAsset(getAssets(),"fonts/Bamini.ttf"); customText1.setTypeface(font1);
现在使用converter to convert Unicode font into Bamini编码.而不是Unicode文本将转换的Bamini编码脚本提供给setText方法.
2.使用图书馆
如果您讨厌所有这些手动编码转换,请查看此library
如上所述,如果您想在运行应用程序时动态更改编码,则consider using the library我为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);
图书馆随附sample app.查看应用程序,了解如何使用库将Unicode字符串转换为Bamini,TAM,TSCII和Anjal.
当您使用该库时,您会得到这样的东西.
您需要使用Android中提供的TypeFace类.您可以使用Bamini或TSCII编码(Mylai是TSCII字体).
免责声明:我写了这本图书馆.
3.对于WebView
如果您正在开发使用html和CSS包含在WebView内部,那么请查看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商店中看到更多的泰米尔语应用程序.