2013-03-19 145 views
1

我最近在开发一个应用程序时遇到了一种情况,我必须在文本视图中显示不同的语言。目前我使用字体/字体这样的显示数:多种语言的多种字体

Typeface tf = Typeface.createFromAsset(this.getAssets(), 
       "DroidHindi.ttf"); 
     TextView textView1 = (TextView) findViewById(R.id.textView2); 
     textView1.setTypeface(tf); 
     textView1.setText("कचजड, कचजड"); 

     Typeface tf1 = Typeface.createFromAsset(this.getAssets(), 
       "asunaskh.ttf"); 
     TextView textView = (TextView) findViewById(R.id.textView1); 
     textView.setTypeface(tf1); 
     textView.setText("یہ انگریزی نہیں"); 

     Typeface tf2 = Typeface.createFromAsset(this.getAssets(), 
       "Banglafont.ttf"); 
     TextView textView2 = (TextView) findViewById(R.id.textView3); 
     textView2.setTypeface(tf2);// এই ইংরেজি নয় 
     textView2.setText("এই ইংরেজি নয়"); 

其优良我的问题是,我要为大约20种不同的语言支持,然后当我在不同应用此事情会变得非常乏味活动。任何替代方式来实现。

回答

4

你要做的是创建一个类和一个公共访问函数,它将返回给你TextView对象与你想要的字体。

TextView public SetLanguage(TextView tv,string type) 
    { 
    TextView newtv = tv; 
    Typeface tf; 
    switch(type) 
    { 
     case "urdu": 
     tf = Typeface.createFromAsset(this.getAssets(),"urdu.ttf"); 
     break; 
     case "hindi": 
     tf = Typeface.createFromAsset(this.getAssets(),"hindi.ttf"); 
     break; 
    // up so on     

    } 
    newtv.setTypeface(tf); 
    return newtv; 
} 
    // and call it any where.. 
TextView textView1 = (TextView) findViewById(R.id.textView2); 
textView1 = classobj.SetLanguage(textView1,"urdu"); 
//assign string of text to it 
4

在应用程序启动时初始化您的字体,并创建一个方法,该方法根据语言使用任意视图并设置字体。

+0

正是我在我的应用程序中所做的完美 – 2013-09-24 18:09:09